数据结构上机实践第四周项目1 - 建立单链表
【项目1 - 建立单链表】
本次项目的目标是定义单链表存储结构,用头插法和尾插法建立单链表,并显示建立好以后的结果。
测试主函数及函数声明源代码如下:
//*Copyright (c)2017,烟台大学计算机与控制工程学院*
//*All rights reservrd.*
//*文件名称 :test.cpp*
//*作者:田长航*
//*完成时间:2017年9月21日*
//*版本号: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->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; //r始终指向终端结点,开始时指向头结点for (i=0; i<n; i++){s=(LinkList *)malloc(sizeof(LinkList));//创建新结点s->data=a[i];r->next=s; //将*s插入*r之后r=s;}r->next=NULL; //终端结点next域置为NULL
}
销毁单链表的函数源代码如下:
void DestroyList(LinkList *&L) //销毁单链表
{LinkList *p=L,*q=p->next;while (q!=NULL){free(p);p=q;q=p->next;}free(p); //此时q为NULL,p指向尾结点,释放它
}
输出单链表的函数源代码如下:
void DispList(LinkList *L) //输出单链表
{LinkList *p=L->next;while (p!=NULL){printf("%d ",p->data);p=p->next;}printf("\n");
}
运行结果截图如下:
数据结构上机实践第四周项目1 - 建立单链表相关推荐
- 数据结构上机实践第四周项目2 - 建设“单链表”算法库
项目2 - 建设"单链表"算法库 本次实践的目的以多文件组织的形式建设"单链表算法库",以便在后续的工程中使用. 文中的多文件组织方式不再细说,可以点击此处参照 ...
- 数据结构上机实践第四周项目4 - 建设双链表算法库
数据结构之自建算法库--双链表 各种算法结构都有各自的用途,在实际中我们会碰到各种工程,单链表有时无法或者不能很好的满足我们的需求,这个时候,双链表不失为一种好的数据结构.本次实践将建立双链表算法库, ...
- 第四周项目1建立单链表
问题及描述: /* *Copyright(c++)2015,烟台大学计算机学院 *All rights reserved, *文件名称:test.cpp *作 者:程梦莹 *完成日期:2015年 ...
- 数据结构上机实践第四周项目7 - 多项式求和
项目6 - 多项式求和 用单链表存储一元多项式,并实现两个多项式的加法. 提示: 1.存储多项式的数据结构 多项式的通式是pn(x)=anxn+an−1xn−1+...+a1x+a0.n次多项式共 ...
- 数据结构上机实践第四周项目3 - 单链表应用
[项目3 - 单链表应用] 算法的建立就是为了应用所服务的,学会方法,真正能应用才是王道. 应用要求如下: 完成下面的应用时,除项目中给出的特殊要求,其余工作均可利用项目2完成的算法支持. 1.设计 ...
- 数据结构上机实践第四周项目5 - 猴子选大王
数据结构实践--猴子选大王 首先呢,小普及一下 读者:难道你当我不知道 读者想对小编说: 进入正题,项目要求如下: 一群猴子,编号是1,2,3 -m,这群猴子(m个)按照1-m的顺序围坐一圈.从第1只 ...
- 数据结构上机实践第四周项目6- 循环双链表应用
数据结构实践--循环双链表应用 线性表都是单向的?链表都是单向的? 本次实践将利用循环双链表进行实际应用,感受这种数据结构的好处 要求如下: 设非空线性表ha和hb都用带头节点的循环双链表表示.设计一 ...
- 第4周实践项目1 建立单链表(非多组织结构)
#include <stdio.h> #include <malloc.h> typedef int ElemType; typedef struct LNode //定义单链 ...
- 第四周项目2--建立”单链表“算法库
/*烟台大学计算机与控制工程学院 作 者:孙潇 完成日期:2015年10月5号 问题描述:按照"0207将算法变程序"部分建议的方法,建设自己的专业基础设施算法库. 这一周,建的是 ...
最新文章
- gradle教程 [原创](eclipse/ADT下 非插件 非Android Studio/AS)纯手打 第一篇:安装配置gradle...
- 图像处理:python实现canny算子
- Java并发编程:Lock和Synchronized 转
- 【Linux】一步一步学Linux——history命令(213)
- cassandra 数据到Java对象的映射绑定
- 边缘计算安全技术综述
- 浙江工业大学计算机应用基础,浙江工业大学期终考试命题稿-浙江大学人文学院.doc...
- 如何正确的开始用Go编程
- php携程语比,PHP 协程
- STM32F103_EXTI外部中断
- SUDTOJ 3323园艺问题 (线段树)
- 《算法新解》读记(一)
- 【事件驱动】【数码管识别】(C++动态链接库的封装和调用)
- 识图php,PHP利用百度识图接口把百度当图床
- 用于AB测试的减少方差方法总结和对比
- 硬盘上出现0KB文件无法删除解决
- 小程序——picker组件
- Python3爬取前程无忧数据分析工作并存储到MySQL
- 2015秋招经历和总结
- 学习英文-学以致用【场景:常说错的中式英文】
热门文章
- Wannafly挑战赛19:C. 多彩的树(状压+容斥)
- HDU 5978 2016ICPC大连 H: To begin or not to begin
- python数据存储系列教程——python中mongodb数据库操作:连接、增删查改、多级路径
- 安卓调用系统语音识别功能全解(谷歌语音服务):获取识别结果,使用语音识别进行搜索。
- Echarts数据可视化grid直角坐标系(xAxis、yAxis),开发全解+完美注释
- python实现自动提取句子中的关键字
- 使用python简单分析个人微信好友
- 百度网盘svip下载时显示下载请求中无下载速度
- 四种电荷分布,点电荷,体电荷,面电荷,线电荷
- 8086的总线操作顺序