實現乙個單向鍊錶的:建立、插入、刪除、排序(冒泡)、逆向、搜尋中間節點
#include #include#include
using
namespace
std;
typedef
struct
student
node;
//建立鍊錶
node *create()
else
}//4. 釋放頭節點
p->next =null;
p =head;
head = head->next;
free
(p);
p =null;
//5. 返回鍊錶
return
head;}//
計算鍊錶長度
int length(node *head)
printf(
"%d\n
", n);
//3. 返回計數
returnn;}
//顯示
void show(node *head)
printf("\n
");}//
插入節點(公升序)
node *insert (node *head, int
num)
//4. 插入節點
if (p0->data > p1->data) //
末尾
else
else
//中間
}//5. 返回頭
return
head;}//
刪除鍊錶中指定節點
node *del(node *head, int
num)
//3. 刪除節點
if (num != p1->data)
else
else
}//4. 返回頭
return
head;}//
鍊錶公升序排序(冒泡演算法)
node *sort(node *head)
//2. 獲取鍊錶長度
n =length(head);
//3. 排序
for (int j=1; j//
遍歷所有節點
p = p->next;}}
//4. 返回頭
return
head;}//
鍊錶逆置
node *reverse(node *head)
//2. 逆置
p1 =head;
p2 = p1->next;
while(p2 !=null)
//3. 調換頭尾節點
head->next = null; //
轉置完後頭節點成為尾節點
head = p1; //
轉置完後尾節點成為頭節點
//4. 返回頭
return
head;}//
搜尋鍊錶中間節點
//演算法:以步長2和1單位同時遍歷鍊錶,步長2到末尾,步長1到中間
void searchmid(node *head, node *mid)
printf(
"mid:%d\n
", mid->data);
}int
main()
C實現單向鍊錶(創造鍊錶)
include include typedef struct nodenode,pnode pnode create list void intmain pnode create list void pnode ptail phead 首尾同一節點 鍊錶 頭尾節點都應該在最開始就定義出來,頭就是第乙...
單向鍊錶的實現C
鍊錶是常用的一種資料結構,如何建立鍊錶 增 刪 查詢等功能是本文討論的內容。首先,鍊錶需要兩個指標,乙個是頭指標是固定不變的,乙個是移動變化的指標。1 為什麼要頭指標?原因是單向列表中的資料結構包含的只有下乙個資料的指標,這樣就說明了,單向鍊錶是不可逆向進行操作。所有的操作都需要正向去操作。這時我們...
C語言單向鍊錶實現
include include typedef struct node listnode typedef listnode linklist 帶頭節點的單鏈表 初始化單鏈表只有頭節點 void initlinklist linklist linklist 建立乙個單鏈表 linklist creat...