最近在重新學資料結構,所以把每次寫完的**記錄一些!
#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...