第4周项目1- 建立单链表
来源:互联网 发布:华为手机数据恢复中心 编辑:程序博客网 时间:2024/06/03 14:01
/** Copyright(c) 2017,烟台大学计算机学院* All rights reserved.* 文件名称:cpp1.* 作 者:薛瑞琪* 完成日期:2017 年 9 月 20 日* 版 本 号:v1.0** 问题描述:定义单链表存储结构,用头插法和尾插法建立单链表,并显示建立好以后的结果。* 输入描述:无需输入* 程序输出:分别用头插法和尾插法建表的结果L1、L2*/
#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; L=(LinkList *)malloc(sizeof(LinkList)); L->next=NULL; for(int i=0;i<n;i++) { s=(LinkList *)malloc(sizeof(LinkList)); s->data=a[i]; s->next=L->next;//将结点s插入到原首结点之前,头结点之后 L->next=s; }}void CreateListR(LinkList *&L,ElemType a[],int n){ LinkList *s,*r; L=(LinkList *)malloc(sizeof(LinkList)); r=L;//r始终指向尾结点,初始时指向头结点 for(int i=0;i<n;i++) { s=(LinkList *)malloc(sizeof(LinkList)); s->data=a[i]; r->next=s;//将结点s插入到结点r之后 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");}
运行结果:
知识点总结:
利用单链表实现线性表基本运算的算法。
CreateListF(LinkList *&L,ElemType a[],int n);头插法建立单链表
CreateListR(LinkList *&L,ElemType a[],int n);尾插法建立单链表
DestroyList(LinkList *&L);销毁单链表 DispList(LinkList *L);输出单链表
学习心得:
加强了对线性表基本运算的理解和运用,巩固了上学期C语言中链表相关的代码。
学习了整体建立单链表的两个常用方法。
阅读全文
0 0
- 第4周 项目1-建立单链表
- 第4周项目1 - 建立单链表
- 第4周项目1-建立单链表
- 第4周项目1-建立单链表
- 【第4周 项目1 - 建立单链表】
- 第4周 项目1 - 建立单链表
- 第4周项目1-建立单链表
- 第4周 项目1 - 建立单链表
- 第4周项目1建立单链表
- 第4周项目1 建立单链表
- 第4周项目1 建立单链表
- 第4周项目1建立单链表
- 第4周项目1-建立单链表
- 第4周 项目1-- 建立单链表
- 第4周项目1-建立单链表
- 第4周项目1 -建立单链表
- 第4周项目1-建立单链表
- 【第4周 项目1-建立单链表 】
- Unity的NGUI插件的HUD Text插件血条数值的显示
- android的隐式意图
- 一致性HASH算法详解
- 51nod 1091 线段的重叠(贪心)
- 2017 ACM/ICPC Asia Regional Shenyang Online 1008 transaction transaction transaction
- 第4周项目1- 建立单链表
- 使用mapper接口改进持久层开发————6
- 【Unity】Fly Bird(游戏实战)(1)
- 简易日历 2
- zhaoshangwangke面试题
- 数据结构第二周项目--体验复杂度之汉诺塔
- 【Android】直接构造BpBinder(handle)进行binder通信猜想
- BZOJ 2683: 简单题(CDQ分治)
- 03 Button对象的事件