链表完整代码。经测试,应该没什么毛病

#include<stdio.h>
#include<malloc.h>
#include<string.h>typedef struct student{int score;//数据域;struct student *next;//指针域;
}Linklist;Linklist *creat(int n)//创建链表
{Linklist *head,*node,*end;head=(Linklist*)malloc(sizeof(Linklist));end=head;for(int i=0;i<n;i++){node=(Linklist*)malloc(sizeof(Linklist));scanf("%d",&node->score);end->next=node;end=node;}end->next=NULL;return head;
}
void change(Linklist*list,int n)//修改链表
//n是要修改的第n个节点,因为链表只能顺序访问不能随机访问,不好用,学这个用来入门数据结构
{Linklist*t=list;int i=0;while(i<n&&t!=NULL)//往后移去找第N个节点{t=t->next;i++;}if(t!=NULL){puts("快点地,输入要修改的值");scanf("%d",&t->score);printf("修改成功\n");}else puts("节点不存在哟");
}
void delet(Linklist*list,int n)//删除链表中的值
{Linklist *t=list,*in;int i=0;while(i<n&&t!=NULL){in=t;//in指向的一直是现在t所指向的上一个(先让in指向t,再让t指向下一个)t=t->next;i++;}if(t!=NULL){in->next=t->next;//要删除t,让指向它的指针指向下一个,跳过t就是删除了t;free(t);//清除t的内存;}else puts("节点不存在!请以后再来探索吧");
}
void insert (Linklist*list,int n)//插入链表    (在第n位之后插入值(插完之后是第n+1位))
{Linklist*t=list,*in;int i=0;while(i<n&&t!=NULL){t=t->next;//先找到要插入的位置i++;}if(t!=NULL){in=(Linklist*)malloc(sizeof(Linklist));puts("请输入要插入的值:");scanf("%d",&in->score);in->next=t->next;t->next=in;puts("插进去了呢");}else puts("节点不存在,你别玩我呀");
}
void coutlist(Linklist*head)//输出链表的值;
{while(head->next!=NULL){head=head->next;printf("%d ",head->score);}printf("\n");
}
void coutlength(Linklist*list)//输出链表的长度(带头结点)
{Linklist*t=list;//非空表的情况下指向的是第一个结点而不是头结点int ans=0;while(t->next){t=t->next;ans++;}printf("%d\n",ans);
}
void find(Linklist*lists,int x)//按值查找w
{Linklist* t=lists->next;while(t!=NULL&&t->score!=x)t=t->next;if(t!=NULL)printf("太棒了,找到了呢\n");return ;
}
void list()//控制面板
{printf("这是一个单链表\n------------------------------------------\nPlease press the button:\n");printf("Button 1 ---> 创建单链表\n");              //创建单链表 (带头结点、表尾插入)printf("Button 2 ---> 获取链表长度\n");               //获取链表长度printf("Button 3 ---> 插入结点\n");                //按序号查找printf("Button 4 ---> 按值查找\n");             //按值查找printf("Button 5 ---> 删除结点\n");      //插入结点printf("Button 6 ---> 修改节点\n");              //删除结点printf("Button 7 ---> 输出链表的值\n");                            //遍历链表printf("Button 8 ---> Exit the program\n-----------------------------------\n");                 //退出程序
}int main()
{list();Linklist*h;int n,x,m;while(true){scanf("%d",&n);if(n==1){printf("请输入一个数字,创建长度为n的链表:\n请输入要加入链表的数:");scanf("%d",&x);h=creat(x);printf("Please press the button:\n");}if(n==2){printf("单链表的长度是:");coutlength(h);printf("Please press the button:\n");}if(n==3){printf("你想插到哪儿?(手动滑稽)");scanf("%d",&x);insert (h,x);printf("Please press the button:\n");}if(n==4){printf("请输入你要找的值");scanf("%d",&m);find(h,m);printf("Please press the button:\n");}if(n==5){printf("你敢删谁?有种你试试!\n");scanf("%d",&x);delet(h,x);printf("还真敢呐,太顶了!\n");printf("Please press the button:\n");}if(n==6){printf("你要改那个值?");scanf("%d",&x);change(h,x);printf("Please press the button:\n");}if(n==7){coutlist(h);printf("Please press the button:\n");}if(n==8){printf("拜拜了您呐\n");return 0;}}return 0;
}

C语言的链表—完整代码相关推荐

  1. 链表c语言代码题库排坐标,C语言讲义——链表完整代码

    #include #include #include struct Node { int _id; char s[50]; struct Node* pre;// 指向前一个节点的地址 struct ...

  2. C语言俄罗斯方块(新版本完整代码)

    2020博客之星年度总评选进行中:请为74号的狗子投上宝贵的一票! 我的投票地址:点击为我投票 写在前面: 大家好,我是 花狗Fdog ,来自内蒙古的一个小城市,目前在泰州读书. 很感谢能有这样一个平 ...

  3. 人工智能基础——贝叶斯分类器例程(c语言实现,完整代码)

    选修课老师布置了一道非常简单的作业,作为一学期没上课的学渣,靠百度搜索写完了作业,现把代码贴出,关于贝叶斯分类器的知识,网上一大堆,我就不费时间重复了. 听说MATLAB可以实现,但我MATLAB学的 ...

  4. C语言实现扫雷完整代码讲解

    扫雷是一款初学者能用C语言实现的益智小游戏,只需要用二维数组操作雷区即可. 算法详讲 : 游戏思路如下:点击雷区中的任一格子,如果该格子有雷,则游戏结束:如果该格子周围9个格子都不是雷,那么直接展开其 ...

  5. C语言归并排序(完整代码版)

    归并排序的代码如下: #include<stdio.h> #include<stdlib.h>void Merge(int arr[], int tmp[], int star ...

  6. c语言贪吃蛇_C语言贪吃蛇完整代码

    #include #include #include //windows编程头文件 #include #include //控制台输入输出头文件 #ifndef __cplusplus typedef ...

  7. python写双色球的开发语言_Python双色球完整代码

    # 双色球是由两种颜色的球(号码)组成 # 红色球:从1-33号球中,先择6个不重复的号码 # 蓝色球:从1-16号球中,选择1个号码 # 从而组成的一个七位数的号码组合 # 在显示的时候,红色球按照 ...

  8. c语言 饭店管理系统 完整代码

  9. 混凝土的强度预测(R语言 超详细完整代码介绍)神经网络+线性回归

    任务背景 在工程领域中,对建筑材料的性能有精确的估计至关重要.这些估计是必需的,以便制定安全准则来管理用于楼宇.桥梁和道路建设中的材料. 估计混泥土的强度是一个特别有趣的挑战.尽管混泥土几乎要用于每一 ...

最新文章

  1. 边界框的回归策略搞不懂?算法太多分不清?看这篇就够了
  2. Android 2D游戏引擎AndEngine配置环境
  3. System.arraycopy和Arrays.copyOf的原理解剖
  4. 大道至简第一章 读后感
  5. python教程:深拷贝与浅拷贝的具体区别在哪里
  6. 找不到redis得pid文件_电脑提示Windows找不到文件?试试这两个技巧,轻松解决!...
  7. Angular multiple binding debug
  8. 全球最贵红绿灯之谜得解,原来是百度Apollo的B面
  9. java某校在积极推行无人监考,结构化面试题:高校无人监考你怎么看?
  10. JEECG登陆全过程
  11. ad9修改焊盘阻焊层大小
  12. win10 -- 增加新建 TXT 文档快捷键
  13. watch港版微信无法连接到服务器,Apple Watch微信打不开怎么办
  14. 海康威视摄像头 rtsp 地址格式
  15. 视频剪辑计算机配置要求,笔记本电脑用来视频剪辑和后期制作要求什么配置高?...
  16. 腾讯内部深度文章曝光:微信向左 手机QQ向右
  17. 京东商城在掩盖什么?(1)
  18. 生日快乐,我想念你们
  19. 读书笔记——计网概述
  20. 三步教你制作龙卷风迁徙地图

热门文章

  1. 【OpenCV 4开发详解】图像仿射变换
  2. 优化:梯度下降法、牛顿法、共轭梯度法
  3. 《ANSYS 14.0超级学习手册》一第2章 高级应用的基石——APDL
  4. 使用idea 时出现classnotfound
  5. CoreAnimation —— CATransaction(隐式动画)
  6. [C#项目开源] MongoDB 可视化管理工具 (2011年10月-至今)
  7. Android RecyclerView添加Header头部
  8. 【更新】比较智能的爬取姓名
  9. RequireJs的使用和快速理解
  10. cloudera之hadoop-0.20.1+152.tar.gz 安装出现找不到JAVA_HOME问题的解决办法