第四周项目1-建立单链表
来源:互联网 发布:怎么用记事本编程 编辑:程序博客网 时间:2024/06/15 01:41
问题描述及代码:[cpp] view plain copy1./* 2.*烟台大学计控学院 3.*作 者:朱建豪 4.*完成日期:2016年9月22日 5.*问题描述:定义单链表存储结构,用头插法和尾插法建立单链表,并显示建立好以后的结果。*/ (1)list.h中的代码[cpp] view plain copy1.#include <stdio.h> 2.#include <malloc.h> 3.typedef int ElemType; 4.typedef struct LNode //定义单链表结点类型 5.{ 6. ElemType data; 7. struct LNode *next; //指向后继结点 8.} LinkList; 9. 10.void CreateListF(LinkList *&L,ElemType a[],int n);//头插法建立单链表 11.void CreateListR(LinkList *&L,ElemType a[],int n);//尾插法建立单链表 12.void DestroyList(LinkList *&L); //销毁单链表 13.void DispList(LinkList *L);//输出单链表 (2)定义函数的代码[cpp] view plain copy1.#include"list.h" 2.void CreateListF(LinkList *&L,ElemType a[],int n)//头插法建立单链表 3.{ 4. LinkList *s; 5. int i; 6. L=(LinkList *)malloc(sizeof(LinkList)); 7. L->next=NULL;//创建头结点,其next域为NULL 8. for(i=0;i<n;i++) 9. { 10. s=(LinkList *)malloc(sizeof(LinkList)); 11. s->data=a[i];//创建数据节点*s 12. s->next=L->next; 13. L->next=s; 14. } 15.} 16.void CreateListR(LinkList *&L,ElemType a[],int n)//尾插法建立单链表 17.{ 18. LinkList *s,*r; 19. int i; 20. L=(LinkList *)malloc(sizeof(LinkList)); 21. r=L; 22. for(i=0;i<n;i++) 23. { 24. s=(LinkList *)malloc(sizeof(LinkList)); 25. s->data=a[i];//创建数据节点*s 26. r->next=s;//将*s插在*r之后 27. r=s; 28. } 29. r->next=NULL; 30.} 31. 32. 33. 34.void DestroyList(LinkList *&L) //销毁单链表 35.{ 36. LinkList *pre=L,*p=L->next; 37. while(p!=NULL) 38. { 39. free(pre); 40. pre=p; 41. p=pre->next; 42. } 43. free(pre); 44.} 45. 46.void DispList(LinkList *L) //输出单链表 47.{ 48. LinkList *p=L->next;//p开始指向节点 49. while(p!=NULL) 50. { 51. printf("%d",p->data); 52. p=p->next; 53. } 54. printf("\n"); 55.} (3)main函数的代码[cpp] view plain copy1.#include"list.h" 2.int main() 3.{ 4. LinkList *L1, *L2; 5. ElemType a[8]= {7, 9, 8, 2, 0, 4, 6, 3}; 6. CreateListF(L1, a, 8); 7. printf("头插法建表结果:"); 8. DispList(L1); 9. CreateListR(L2, a, 6); 10. printf("尾插法建表结果:"); 11. DispList(L2); 12. DestroyList(L1); 13. DestroyList(L2); 14. return 0; 15.} 运行结果:<img src="http://img.blog.csdn.net/20160922102546829?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />知识点总结:利用头插法和尾插法来建立单链表,销毁内存空间,然后输出创建好的单链表学习心得:头插法和尾插法各有各的好处,但自己还是不会编写。。。。。在练习中慢慢来吧。。不过算法的过程还是理解的
0 0
- 第四周项目1-建立单链表
- 第四周-项目1-建立单链表
- 第四周项目(1):建立单链表
- 第四周项目1-建立单链表
- 第四周项目1—建立单链表
- 第四周-项目1 - 建立单链表
- 第四周—项目1 建立单链表
- 第四周 项目1-建立单链表
- 第四周 项目1-建立单链表
- 第四周 项目1-建立单链表
- 第四周实践项目1--建立单链表
- 第四周项目1-建立单链表
- 第四周 项目1 建立单链表
- 第四周项目1—建立单链表
- 第四周项目1建立单链表
- 第四周项目1-建立单链表
- 第四周—项目1 建立单链表
- 第四周 项目1-建立单链表
- android 源码权限问题
- android c++标准命名空间demo
- redis在项目中的使用
- Android调用本地相册选择图片并剪切后展示和缓存
- JAVA_OO
- 第四周项目1-建立单链表
- gcdasyncsocket address already in use
- Vertica的这些事<十>—— vertica中group by 和join 语句的优化
- MAC 设置环境变量path的几种方法
- 真机运行弹出提示could not find developer disk image
- 输出自己的名字
- 第四周 项目一——建立单链表问题及代码
- 【项目2-长方形周长和面积】 第四周
- linux系统中的时间