第四周--建立单链表
来源:互联网 发布:网络预约系统 编辑:程序博客网 时间:2024/06/06 07:06
<pre class="cpp" name="code">/* *Copyright (c) 2015 烟台大学计算机与控制工程学院 *All right reserved. *标题:数据结构实践——建立单链表 *作者:杨珺 *date:2015年9月21日 *版本:V1.0.1 *操作系统:XP *运行环境:VC6.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;L->next=s;}}//尾插法void CreateListR(LinkList *&L,ElemType a[],int n){ LinkList *s,*r; int i; L=(LinkList *)malloc(sizeof(LinkList)); L->next=NULL; 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=p;p=pre->next;}free(pre);}//输出单链表void DispList(LinkList *L) {LinkList *p=L->next;while(p!=NULL){printf("%d",p->data);p=p->next;}printf("\n");}
运行结果:
知识总结:
头插法是将新节点插入到当前链表的表头上,而尾插法是将新节点插入到当前链表的表尾。两种建表的方法都需要先创建一个头节点,给它分配空间,头节点的next域为NULL;再循环建立数据节点,把数据节点在for循环下,一个个的插入;最后将尾节点的next设为NULL。这样采用头插法或尾插法就建立链表了!
0 0
- 第四周--建立单链表
- 第四周 建立单链表
- 第四周 建立单链表
- 第四周 建立单链表
- 第四周:建立单链表
- 第四周--建立单链表
- 第四周 建立单链表
- 第四周 建立单链表
- 第四周 建立单链表
- 第四周 建立单链表
- 第四周项目1-建立单链表
- 第四周-项目1-建立单链表
- 第四周项目(1):建立单链表
- 第四周项目1-建立单链表
- 第四周项目1—建立单链表
- 第四周-项目1 - 建立单链表
- 第四周—项目1 建立单链表
- 第四周 项目1-建立单链表
- dos 通过ftp连接到vsftpd 显示乱码解决方法
- 程序编程的一点体会
- qml学习----------(CheckBox)复选框的使用
- CentOS 7 创建eclipse快捷方式
- 关于const int*, int const*以及int *const的区别
- 第四周--建立单链表
- 第3周实践项目3-求集合的并集
- Java中接口和抽象类的区别及使用的场合
- Android 摇晃动画代码实现技巧
- 自己动手写一个Camera
- Altera硬IP开发PCIe 之四 不只需要PCIe硬核
- 第3周项目1—顺序表的基本运算
- android更新app未读消息数目在app图标的办法
- Xcode7 编译报错