C語(yǔ)言編寫(xiě)一個(gè)鏈表
本文實(shí)例為大家分享了C語(yǔ)言編寫(xiě)一個(gè)鏈表的具體代碼,供大家參考,具體內(nèi)容如下
鏈表

具備的基本功能:
1.創(chuàng)建頭鏈表
struct Node* Creatlist(){//創(chuàng)建鏈表頭
struct Node *headnode = (struct Node*)malloc(sizeof(struct Node));//創(chuàng)建動(dòng)態(tài)內(nèi)存鏈表,指針變量
headnode->next = NULL;//鏈表初始化
return headnode;
}
2.創(chuàng)建節(jié)點(diǎn)
struct Node* Creatnode(int num){//創(chuàng)建結(jié)點(diǎn),鏈表,參數(shù)數(shù)字域
struct Node* newnode = (struct Node*)malloc(sizeof(struct Node));//創(chuàng)建動(dòng)態(tài)內(nèi)存鏈表,指針變量
newnode->num = num;
newnode->next = NULL;//鏈表初始化
return newnode;
}
3.插入節(jié)點(diǎn)

void Insetlist(struct Node* list, int num){//頭插法
struct Node* insetnode = Creatnode(num);
if (list != NULL){
insetnode->next = list->next;
list->next = insetnode;
}
else{
printf("節(jié)點(diǎn)不存在\n");
}
}
void Insetlists(struct Node* headnode, int n, int num){//在n節(jié)點(diǎn)處插入,參數(shù)頭節(jié)點(diǎn),在第n個(gè)節(jié)點(diǎn)處插,插入的數(shù)據(jù)num
int i = 1;
struct Node *t = headnode;
while (i < n&& t!= NULL){
t = t->next;
i++;
}
if (t != NULL){
struct Node* insetnode = Creatnode(num);
insetnode->next = t->next;
t->next = insetnode;
}
else{
printf("節(jié)點(diǎn)不存在\n");
}
}
4.修改節(jié)點(diǎn)
void Modifynode(struct Node* headnode, int n){//修改節(jié)點(diǎn),參數(shù)鏈表,修改的第n個(gè)節(jié)點(diǎn)
struct Node* list = headnode;
int i = 0;
while (i < n&&list != NULL){
list = list->next;
i++;
}
if (list != NULL){
printf("請(qǐng)輸入你要修改的值\n");
int j = 0;
scanf("%d", &j);
list->num = j;
}
else{
printf("節(jié)點(diǎn)不存在\n");
}
}
5.刪除節(jié)點(diǎn)

定義兩個(gè)指針,一個(gè)指向刪除節(jié)點(diǎn)的上一個(gè)節(jié)點(diǎn),一個(gè)指向要?jiǎng)h除的節(jié)點(diǎn)
void Deletnode(struct Node* headnode, int n){//刪除第n個(gè)節(jié)點(diǎn),
int i = 1;
struct Node *strat = headnode;
struct Node *end = headnode->next;
while (i < n&&end != NULL){
strat = strat->next;
end = end->next;
i++;
}
if (end != NULL){
strat->next = end->next;
free(end);
}
else{
printf("節(jié)點(diǎn)不存在\n");
}
}
6.打印節(jié)點(diǎn)
void Printnode(struct Node* headnode){//打印節(jié)點(diǎn)
struct Node* list = headnode;
while ((list->next) != NULL){
list = list->next;
printf("%d\t", list->num);
}
printf("\n");
}
7.主函數(shù)
int main(){
struct Node* list = Creatlist();
Insetlists(list, 1, 1);
Printnode(list);
int i = 0;
printf("請(qǐng)輸入修改哪個(gè)節(jié)點(diǎn)\n");
scanf("%d", &i);
Modifynode(list, i);
Printnode(list);
printf("請(qǐng)輸入刪除哪個(gè)節(jié)點(diǎn)\n");
int n = 0;
scanf("%d", &n);
Deletnode(list, n);
Printnode(list);
system("pause");
return 0;
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 用C語(yǔ)言實(shí)現(xiàn)單鏈表的各種操作(一)
- C語(yǔ)言之單鏈表的插入、刪除與查找
- C語(yǔ)言單循環(huán)鏈表的表示與實(shí)現(xiàn)實(shí)例詳解
- C語(yǔ)言實(shí)現(xiàn)帶頭結(jié)點(diǎn)的鏈表的創(chuàng)建、查找、插入、刪除操作
- c語(yǔ)言鏈表基本操作(帶有創(chuàng)建鏈表 刪除 打印 插入)
- C語(yǔ)言單向鏈表的表示與實(shí)現(xiàn)實(shí)例詳解
- C語(yǔ)言實(shí)現(xiàn)單鏈表逆序與逆序輸出實(shí)例
- C語(yǔ)言創(chuàng)建和操作單鏈表數(shù)據(jù)結(jié)構(gòu)的實(shí)例教程
- C語(yǔ)言雙向鏈表的表示與實(shí)現(xiàn)實(shí)例詳解
- C語(yǔ)言實(shí)現(xiàn)雙向鏈表
相關(guān)文章
詳解C++中實(shí)現(xiàn)繼承string類(lèi)的MyString類(lèi)的步驟
這篇文章主要介紹了C++中實(shí)現(xiàn)繼承string類(lèi)的MyString類(lèi)的步驟,其中的要點(diǎn)是要實(shí)現(xiàn)運(yùn)算符的重載,需要的朋友可以參考下2016-04-04
VS2019中CMake項(xiàng)目的簡(jiǎn)單使用方法
這篇文章主要介紹了VS2019中CMake項(xiàng)目的簡(jiǎn)單使用方法,需要的朋友可以參考下2020-02-02
CMakeList中自動(dòng)編譯protobuf文件過(guò)程
這篇文章主要介紹了CMakeList中自動(dòng)編譯protobuf文件過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12
探討:用兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列(我作為面試官的小結(jié))
作為面試官的我,經(jīng)常拿這道用兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列的面試題來(lái)考面試者,通過(guò)對(duì)面試者的表現(xiàn)和反應(yīng),有一些統(tǒng)計(jì)和感受,在此做個(gè)小結(jié)2013-05-05
C語(yǔ)言實(shí)現(xiàn)超市計(jì)價(jià)收款系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)超市計(jì)價(jià)收款系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
C語(yǔ)言報(bào)錯(cuò):Buffer Overflow的原因和解決辦法
Buffer Overflow是C語(yǔ)言中常見(jiàn)且危險(xiǎn)的內(nèi)存錯(cuò)誤之一,它通常在程序試圖向緩沖區(qū)(如數(shù)組或內(nèi)存塊)寫(xiě)入超過(guò)其容量的數(shù)據(jù)時(shí)發(fā)生,本文將詳細(xì)介紹Buffer Overflow的產(chǎn)生原因,提供多種解決方案,需要的朋友可以參考下2024-07-07
C++ 將文件數(shù)據(jù)一次性加載進(jìn)內(nèi)存實(shí)例代碼
這篇文章主要介紹了C++ 將文件數(shù)據(jù)一次性加載進(jìn)內(nèi)存實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2017-05-05

