#define Error -1
#define OK 1
typedef int Status;
typedef int ElementType;
typedef struct Node{
ElementType data;
struct Node * next;
}Node, * LinkList;
//獲得一個(gè)元素
Status GetElement(LinkList L, int i, ElementType *e){
//指向第一個(gè)元素的值
LinkList p = L->next;
int j = 1;
while (p && j < i) {
p = p->next;
j++;
}
if (!p || j > i) {
return errno;
}
*e = p->data;
return OK;
}
Status ListInsert(LinkList L, int i , ElementType e){
LinkList p = L;
for (int j = 1; j < i; j++) {
p = p->next;
}
if (!p || i < 1) {
return errno;
}
Node *node = (Node *)malloc(sizeof(Node));
node->data = e;
node->next = p->next;
p->next = node;
return OK;
};
//刪除元素
Status listDeleteElement(LinkList L, int i, ElementType *e){
LinkList p = L;
for (int j = 1; j < i; j++) {
p = p->next;
}
if (!p || !p->next || i < 1) {
return errno;
}
Node *node = p->next;
p->next = node->next;
*e = node->data;
free(node);
return OK;
}
LinkList CreateListTail(LinkList p, int n){
LinkList tempNode, L;
p = (Node *)malloc(sizeof(Node));
p->data = 9999;
p->next = NULL;
L = p;
for (int i = 1; i <= n; i++) {
tempNode = (Node *)malloc(sizeof(Node));
tempNode->data = i;
L->next = tempNode;
L = tempNode;
}
L->next = NULL;
return p;
}
void LogListNode(LinkList p){
LinkList L = NULL;
L = p->next;
while (L) {
printf("%d---",L->data);
L = L->next;
}
}
Status clearList(LinkList * L){
LinkList p = (*L)->next;
LinkList q = NULL;
while (p) {
q = p->next;
free(p);
p = q;
}
(*L)->next = NULL;
return OK;
}
// 獲得鏈表的最中間的節(jié)點(diǎn)的值
//利用快慢指針 慢指針每次1步, 快指針每次走兩步,當(dāng)快指針走到頭時(shí),慢指針就在中央
Status getListMidNode(LinkList p, ElementType *e){
LinkList slow = p->next, quick=p->next;
while (quick->next && quick) {
quick = quick->next;
if (quick->next) {
quick = quick->next;
slow = slow->next;
}
}
*e = slow->data;
return OK;
}
線性表的鏈?zhǔn)酱尜A結(jié)構(gòu)
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 之前寫了線性表的順序存儲(chǔ)結(jié)構(gòu)和有序線性表的順序存儲(chǔ)結(jié)構(gòu)以及線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),今天接著寫有序線性表的鏈?zhǔn)酱鎯?chǔ)結(jié) ...
- 之前寫了線性表的順序存儲(chǔ)結(jié)構(gòu)和有序線性表的順序存儲(chǔ)結(jié)構(gòu),今天接著寫線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu) 數(shù)據(jù)結(jié)構(gòu)之線性表的順序存儲(chǔ)...
- 線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的特點(diǎn)是用一組任意的存儲(chǔ)單元存儲(chǔ)線性表的數(shù)據(jù)元素,這組存儲(chǔ)單元可以存在內(nèi)存中未被占用的任意位置...
- 順序存儲(chǔ)結(jié)構(gòu):優(yōu)點(diǎn):a.不用為表中元素的邏輯關(guān)系去增加多余的存儲(chǔ)空間,b.能夠快速存取任意位置的元素缺點(diǎn):a.插入...
- 近幾次總是討論著各種各樣的表,難免有些暈。這次的內(nèi)容依然是一個(gè)表(笑哭臉),為了不“暈表”,我們先來理一理:這是個(gè)...