用C語言實現單鏈表

2021-10-04 22:36:52 字數 1917 閱讀 4465

最近在重新學資料結構,所以把每次寫完的**記錄一些!

#include#include#define error 0

#define ok 1

/*構造節點

*/typedef struct node node;

/*初始化鍊錶

n 初始化的長度

*/node * init_head(int n)

node *head = (node *)malloc(sizeof(node));//初始化乙個頭節點

if (!head)

node *temp=head;//創造乙個遍歷指標,該指標用於指向最後乙個節點

for (int i = 0; i < n; i++)

scanf("%d", &a->data);

a->next = null;//下乙個元素為空

temp = temp->next;//把遍歷指標下移乙個 }

return head;//返回頭節點}/*

遍歷鍊錶

p 頭節點的指標

*/void select_all(node *p)

node *temp1 = p->next;//頭節點沒有資料,所以不用遍歷

bool flag = true;//設定遍歷結束的條件

while (flag)

printf("\n");}/*

刪除元素

p 傳入頭節點

num 要刪除的位置

*/node * delete_link(node *p,int num)

node *temp = p;

for (int i = 1; i < num; i++)

temp = temp->next;//找到的是要被刪除的前乙個節點

} node *c = temp->next;

temp->next = c->next;

free(c);

return p;}/*

改變某個節點的元素的值

p 頭節點

num 要更新的位置

eu 要更新的值

*/node * update_list(node *p,int num,int eu)

if (p->next ==null)

a->data = eu;

a->next = null;

p->next = a;

return p;

} node *temp = p;

for (int i = 0; i < num; i++)

temp = temp->next;//要更新的位置

} temp->data = eu;

return p;}/*

在某個位置增加乙個新節點

p 頭節點

i 插入的位置

newnum 該位置的值

*/node * insert_list(node *p, int n, int newnum)

if (p->next == null)

a->data = newnum;

a->next = null;

p->next = a;

return p;

} node *temp = p;

for (int i = 1; i < n; i++)

temp = temp->next;//最後找到的是該位置的前乙個元素

} node *a = (node *)malloc(sizeof(node));

if (!a)

a->data = newnum;

a->next = temp->next;

temp->next = a;

return p;

}//測試

void main()

用c語言實現單鏈表

用c語言實現單鏈表 node.h pragma once typedef int datatype typedef struct node node node buynode datatype x 增容 void printlist node phead 列印 void pushback node ...

c語言實現單鏈表

一 使用簡介 使用c語言實現了單鏈表的基本操作,共有四個檔案,兩個標頭檔案是常用的,後兩個分別是主函式,和對鍊錶的基本操作函式,倒入時候,須將四個檔案放在同乙個目錄下。二 心得 在書寫過程中,主要錯誤集中在指標的使用上,通過此次程式設計,對於指標的認識更加深刻,頭結點的存在,更大意義上是為了簡化指標...

C語言實現單鏈表

單鏈表可以說是基礎,有利於對指標的使用 結點 typedef int datatype typedef struct slistnode slistnode 實現的函式的宣告如下 slistnode buynode datatype x void printslist slistnode phead...