OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2625|回复: 0

链表初学习---简单初始化、增删改查

[复制链接]

143

主题

145

帖子

0

精华

高级会员

Rank: 4

积分
585
金钱
585
注册时间
2020-5-25
在线时间
42 小时
发表于 2020-10-10 17:05:33 | 显示全部楼层 |阅读模式
#include<stdio.h> 2 #include<stdlib.h> 3 typedef struct student{ 4     int score; 5     struct student *next; 6 }LinkList; 7 //初始化链表 8 LinkList *create(int n){//n是链表节点个数 9     LinkList *head,*node,*end;//头指针,普通指针,尾指针10     head = (LinkList*)malloc(sizeof(LinkList));11     end = head;//空链表,头指针和尾指针此时相同 12     for(int i=0;i<n;i++){13         node = (LinkList*)malloc(sizeof(LinkList));//每次都分配地址14         scanf("%d",&node->score);15         end->next = node;//建立尾节点与新节点的联系 16         end = node;//尾节点后移 17     } 18     end->next = NULL;//结束创建19     return head;//返回一整个链表 20 } 21 //修改第n个节点的值22 void change(LinkList *list,int n){23     LinkList *t = list;24     int i=0;25     //遍历至第n个节点26     while(i<n&&t!=NULL){27         t=t->next;28         i++;29     } 30     if(t!=NULL){31         puts("输入要修改的值");32         scanf("%d",&t->score); 33     }else{34         puts("节点不存在");35     }36 } 37 //删除第n个节点38 39 void delet(LinkList *list,int n){40     LinkList *t = list,*p;41     int i=0;42     while(i<n&&t!=NULL){43         p=t;44         t=t->next;45         i++;46     }47     if(t!=NULL){48         p->next=t->next;49         free(t);50     }else{51         puts("节点不存在");52     }53 } 54 //在第n个节点插入新节点55 void insert(LinkList *list,int n){56     LinkList *t = list,*p;57     int i=0;58     while(i<n&&t!=NULL){59         t=t->next;60         i++;61     }62     if(t!=NULL){63         p = (LinkList*)malloc(sizeof(LinkList));64         puts("输入要插入的值");65         scanf("%d",&p->score);66         p->next=t->next;67         t->next=p;68     }else{69         puts("节点不存在");70     }71 } 72 //打印链表73 void print(LinkList *list){74     LinkList *t = list;75     while(t->next != NULL){76         t=t->next;77         printf("%d ",t->score);78     }79 } 80 int main(){81     int n;82     scanf("%d",&n);83     LinkList *p = create(n);84     print(p);85     change(p,5);86     print(p);87     88     delet(p,2);89     print(p);90     delet(p,11);91     insert(p,1);92     print(p);93     94     return 0;95 }

注意点:delete是c中的关键字,函数名不要取作delete[size=18.6667px]有相同爱好的可以进来一起讨论哦:企鹅群号:1046795523学习视频资料:http://www.makeru.com.cn/live/1392_1164.html?s=143793
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-17 11:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表