算法学习第二课链表C语言实现
来源:互联网 发布:kindle 推送 知乎周刊 编辑:程序博客网 时间:2024/06/04 18:06
大学基本功没有打好。。。。链表真的很考验指针的基本功。
题目练习:从终端输入一组数据(大于10个),以0作为结束标志,将数据存放在一个链表中(结束标志0不包括在内),打印链表中的值,然后删除第5个元素,打印输出,在最后释放掉链表。
#include <stdio.h>#include <stdlib.h>typedef int ElemType;typedef struct node{ElemType data;struct node *next;} LNode,*LinkList;//LNode *L <==> LinkList LLinkList CreatLinkList(int n)//创建一个含n元素的链表{LinkList p,r,list = NULL;ElemType e;int i;for(i=1;i<=n;i++){scanf("%d",&e);//输入结点内容p = (LinkList)malloc(sizeof(LNode));//给新结点开辟内存p->data = e;p->next = NULL;if(!list)//list 为head只有第一个元素的地址list = p;elser->next = p;r = p;//r 为临时变量用于中间桥梁}return list;//返回链表的头}void InsertList(LinkList *list,LinkList q,ElemType e){LinkList p;p = (LinkList)malloc(sizeof(LNode));//为新结点开辟内存p->data = e;if(!*list)//空链表时候{*list = p;p->next = NULL;}else{p->next = q->next; //插入p结点到q结点后边q->next = p;}}void DelLink(LinkList *list,LinkList q){LinkList r;if(q == *list){*list = q->next;free(q);}else{for(r=*list;r->next!=q;r=r->next);//找到q的前一个结点if(r->next != NULL){r->next = q->next;free(q);}}}void DestroyLinkList(LinkList *list){LinkList p,q;p = *list;while(p)//释放掉每一个链表结点{q = p->next;free(p);p = q;}*list = NULL;}//test main //int main(){int e,i;LinkList list1,list2;list1 = list2 = CreatLinkList(1);scanf("%d",&e);while(e){InsertList(&list1,list2,e);list2 = list2->next;scanf("%d",&e);}list2 = list1;printf("The content of the linklist\n");while(list2){printf("%d",list2->data);list2 = list2->next;} list2 = list1;printf("\nDelete the fifth element\n");for(i=0;i<4;i++){list2 = list2->next;}DelLink(&list1,list2);list2 = list1;while(list2){printf("%d",list2->data);list2 = list2->next;}DestroyLinkList(&list1);while(1);return 0;}
- 算法学习第二课链表C语言实现
- 寒假算法第二编——C语言实现栈
- c语言学习第二天
- 学习C语言第二天
- C语言学习第二天
- C语言学习第二章
- 算法:C语言实现(Algorithms In C)的学习
- 《编程珠玑》第二章 “杂技算法” 和 “翻转算法” C语言实现
- 《编程珠玑》第二章 “杂技算法” 和 “翻转算法” C语言实现
- 算法导论C语言实现各算法代码集合-第二章
- 严蔚敏版《数据结构》第二章线性表的算法C语言实现
- 算法:C语言实现第三章第一节学习笔记
- 常见算法学习(C语言实现)(一)
- 机器学习算法之C4.5(C语言实现)
- 算法:C语言实现(第3章 学习笔记)
- 算法导论学习---红黑树详解之插入(C语言实现)
- 算法学习之快速排序的C语言实现
- 《PID控制算法的C语言实现》学习笔记
- sqlserver表变量和临时表
- css3阴影高级版
- rails 4 中 通过 程序来 控制复合唯一索引
- 【D3.js数据可视化系列教程】(二十五)--加载csv文件
- iOS 网络请求URL包含中文解决方法
- 算法学习第二课链表C语言实现
- ArcGIS在线体验中心Demo列表
- Java(Android)线程池
- Linux下打包压缩命令- gzip、bzip2、tar
- 监听软键盘的显示和隐藏
- 苹果开发者帐号(Company)申请流程
- [LeetCode]ZigZag Conversion
- 基于OpenCV的人脸识别设计方案
- 安卓免root原理