單鏈表操作

2021-04-20 23:59:36 字數 2164 閱讀 1642

#include

#include

typedef struct node_tag node;

// 建立不帶頭結點的單鏈表

node *createnode()

else

p = q;

scanf("%d", &n);

}// 函式體結束,q指標變數被釋放,不能通過head引數帶回到呼叫函式

// 要把head帶回到呼叫函式,要把它定義為指向指標的指標。

return phead;

}// 求鍊錶長度

int length(node *head)

return n;

}// 輸出結果

void output(node *head)

printf("/n");

printf("length: %d/n", length(head));

}// 單鏈表的逆置

node *reverse(node *head)

head->next = null;

head = p;

return head;

}// 有序單鏈表的合併

node *mergelist(node *head1, node *head2)

p1 = p1->next;

}while (p2->next)

p2 = p2->next;

}if (flag1 != flag2)

//******************************//

node *head = null;

node *p = null;

p1 = head1;

p2 = head2; 

// 從小到大排序

if (flag1)

else

p = head;

while (p1 != null && p2 != null)

else }}

// 從大到小排序

else

else

p = head;

while (p1 != null && p2 != null)

else }}

p->next = p1? p1 : p2;

return head;

}// 有序單鏈表的交集

node *insectlist(node *head1, node *head2)

p1 = p1->next;

}while (p2->next)

p2 = p2->next;

}if (flag1 != flag2)

//******************************//

node *head = null;

node *p = null;

p1 = head1;

p2 = head2; 

// 從小到大排序

if (flag1)

else if(p1->data > p2->data)

else

else

p1 = p1->next;

p2 = p2->next;

while(p1 && p1->data == p->data)

p1 = p1->next;

while(p2 && p2->data == p->data)

p2 = p2->next;}}

}// 從大到小排序

else

else if(p1->data < p2->data)

else

else

p1 = p1->next;

p2 = p2->next;

while(p1 && p1->data == p->data)

p1 = p1->next;

while(p2 && p2->data == p->data)

p2 = p2->next;}}

}p->next = null;

return head;

}// 移出表頭結點

// 因為函式引數是值傳遞,因此如果不用引用函式內部對指標指向的修改並不影響外部指標

node *removehead(node *head)

void main()

單鏈表操作

include stdio.h include malloc.h include define n 10 代表要處理的元素個數 可以誰使用者的意思修改 define ok 1 define overflow 0 typedef int elemtype typedef int status type...

單鏈表操作

這一次補上鍊表的注釋,是空閒的時候敲出來的,如果有錯,希望幫忙糾正 部分給出了詳細說明,這裡只選取了基本操作,因為更複雜的鍊錶操作太繁瑣,這裡就不寫了 如果有什麼不懂的地方,可以隨時詢問 include using namespace std typedef int elemtype struct ...

單鏈表操作

資料結構上機測試 2 1 單鏈表操作 atimelimit 1000ms memory limit 4096k 題目描述輸入n 個整數,先按照資料輸入的順序建立乙個帶頭結點的單鏈表,再輸入乙個資料 m,將單鏈表中的值為 m的結點全部刪除。分別輸出建立的初始單鏈表和完成刪除後的單鏈表。輸入第一行輸入資...