失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > c语言用链表编写简单程序 C语言单链表简单实现(简单程序复杂化)

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

时间:2023-09-11 13:51:09

相关推荐

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语言单链表简单实现(简单程序复杂化)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。