第四周项目1-建立单链表
来源:互联网 发布:网页数据库查询系统 编辑:程序博客网 时间:2024/05/30 23:04
问题及代码:
/*copyright (t) 2016,烟台大学计算机学院*All rights reserved.*文件名称:1.cpp*作者:常锐*完成日期:2016年9月16日*版本号:v1.0*问题描述:定义单链表存储结构,用头插法和尾插法建立单链表,并显示建立好以后的结果。 *输入描述:无*程序输出:无*/
#include <stdio.h>#include <malloc.h>typedef int ElemType;typedef struct LNode //定义单链表结点类型{ ElemType data; struct LNode *next; //指向后继结点} LinkList;void CreateListF(LinkList *&L,ElemType a[],int n);//头插法建立单链表void CreateListR(LinkList *&L,ElemType a[],int n);//尾插法建立单链表void DestroyList(LinkList *&L); //销毁单链表void DispList(LinkList *L); //输出单链表int main(){ LinkList *L1, *L2; ElemType a[8]= {7, 9, 8, 2, 0, 4, 6, 3}; CreateListF(L1, a, 8); printf("头插法建表结果:"); DispList(L1); CreateListR(L2, a, 6); printf("尾插法建表结果:"); DispList(L2); DestroyList(L1); DestroyList(L2); return 0;}void CreateListF(LinkList *&L,ElemType a[],int n)//头插法建立单链表{ LinkList *s; int i; L=(LinkList *)malloc(sizeof(LinkList)); L->next=NULL; for(i=0;i<n;i++) { s=(LinkList *)malloc(sizeof(LinkList)); s->data=a[i]; s->next=L->next; //s指针域指向原来L的后继节点 L->next=s; //L的指针域指向新插入的s }}void CreateListR(LinkList *&L,ElemType a[],int n)//尾插法建立单链表{ LinkList *s,*r; //头指针*s与增加的尾指针*r int i; L=(LinkList *)malloc(sizeof(LinkList)); r=L; for(i=0;i<n;i++) { s=(LinkList *)malloc(sizeof(LinkList)); s->data=a[i]; r->next=s; r=s; } r->next=NULL; //到尾}void DestroyList(LinkList *&L) //销毁单链表{ LinkList *pre=L,*p=L->next; while(p!=NULL) { free(pre); //释放*pre节点 pre=p; p=pre->next; //“跟随”,同步后移 } free(pre); //循环结束时pre已指向尾节点,释放尾节点,完成销毁}void DispList(LinkList *L) //输出单链表{ LinkList *p=L->next; while(p!=NULL) { printf("%d ",p->data); p=p->next; } printf("\n");}
运行结果:
知识点总结:
建立单链表、输出单链表、销毁单链表
心得体会:
单链表问题虽然抽象繁琐,不过将抽象繁琐的内容“可视化”,能大大降低难度,加深对此知识点的理解。
0 0
- 第四周项目1-建立单链表
- 第四周-项目1-建立单链表
- 第四周项目(1):建立单链表
- 第四周项目1-建立单链表
- 第四周项目1—建立单链表
- 第四周-项目1 - 建立单链表
- 第四周—项目1 建立单链表
- 第四周 项目1-建立单链表
- 第四周 项目1-建立单链表
- 第四周 项目1-建立单链表
- 第四周实践项目1--建立单链表
- 第四周项目1-建立单链表
- 第四周 项目1 建立单链表
- 第四周项目1—建立单链表
- 第四周项目1建立单链表
- 第四周项目1-建立单链表
- 第四周—项目1 建立单链表
- 第四周 项目1-建立单链表
- HDU 1212 Big Number
- 高并发
- 二叉搜索树
- [Leetcode] Reverse Vowels of a String
- Android 内存溢出和内存泄漏的区别
- 第四周项目1-建立单链表
- 欢迎使用CSDN-markdown编辑器
- Qt小传——从诞生到发展、繁荣
- Anaconda Note(辨公室)
- 逻辑地址、线性地址、物理地址和虚拟地址 概念与区别
- HDU 5867 Water problem
- ContentProvider 浅谈
- 最浪漫的事
- [Leetcode] Power of Four