日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言用链表编写简单程序,C语言单链表简单实现(简单程序复杂化)

發布時間:2023/12/19 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言用链表编写简单程序,C语言单链表简单实现(简单程序复杂化) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ps: goto還是很好玩的。

#include

#include

typedef struct _node{

int value;

struct _node *next;

} node;

typedef struct _list{

node* head;

}list;

void add(list* plist,int number);

void print(list* list);

void deletel(list* list,int number);

void freel(list* list);

int main(int argc, char *argv[]) {

node *head = null;

list list;

int number=0;

list.head=null;

for(;;){

printf("\n這是一個鏈表,現有如下功能 1.添加節點 2.遍歷鏈表 3.查找并刪除節點 4.釋放鏈表 5.退出程序 \n請輸入你想要進行的操作的選項:\n" );

out:

scanf("%d",&number);

switch(number){

case 1:

printf("你選擇了添加節點\n請輸入添加節點的值,輸入-1結束添加\n");

do{

scanf("%d",&number);

if(number != -1){

//添加一個新的節點掛載。

add(&list,number);

}

}while(number != -1);

printf("添加完畢");

break;

case 2:

printf("你選擇了遍歷鏈表\n");

//打印鏈表

print(&list);

break;

case 3:

printf("你選擇了查找并刪除節點,請輸入節點數據\n");

scanf("%d",&number);

//刪除一個節點

deletel(&list,number);

break;

case 4:

printf("你選擇了釋放鏈表");

//釋放鏈表

freel(&list);

printf("釋放完畢");

break;

case 5:

goto end;

default :

printf("輸入錯誤,請重新輸入\n");

goto out;

}

}

end:

printf("拜拜");

return 0;

}

void add(list* plist,int number){

node *p =(node*)malloc(sizeof(node));

p->value =number;

p->next =null;

node *last =plist->head;

if(last){

while(last->next){

last = last->next;

}

last->next=p;

}else{

plist->head = p;

}

}

//遍歷鏈表

void print(list* list){

node *p;

for(p=list->head;p;p=p->next){

printf("%d\t",p->value);

}

printf("\n");

}

//查找并刪除節點

void deletel(list* list,int number){

node* p;

int isfound =0;

for(p=list->head;p;p=p->next){

if(p->value==number){

printf("找到了\n");

isfound = 1;

break ;

}

}

if(!isfound){

printf("沒找到");

}

node *q;

for(q=null,p=list->head;p;q=p,p=p->next){

if(p->value==number){

if(q){

q->next = p->next;

}else{

list->head=p->next;

}

free(p);

printf("已經刪除");

break ;

}

}

}

//釋放鏈表

void freel(list* list){

node *q;

node* p;

for(p=list->head;p;p=q){

q=p->next;

free(p);

}

}

讀書和健身總有一個在路上

總結

以上是生活随笔為你收集整理的c语言用链表编写简单程序,C语言单链表简单实现(简单程序复杂化)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。