《数据结构》实验报告模板附实例实验一线性表的基本操作实现_第1页
《数据结构》实验报告模板附实例实验一线性表的基本操作实现_第2页
《数据结构》实验报告模板附实例实验一线性表的基本操作实现_第3页
《数据结构》实验报告模板附实例实验一线性表的基本操作实现_第4页
《数据结构》实验报告模板附实例实验一线性表的基本操作实现_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 实验 一 线性表的基本操作实现及其应用 一、实验目的1、熟练掌握线性表的基本操作在两种存储结构上的实现,其中以熟悉各种链表的操作为重点。2、巩固高级语言程序设计方法与技术,会用线性链表解决简单的实际问题。二、实验内容 1、单链表的表示与操作实现 ( * )2、约瑟夫环问题3、Dr.Kong的艺术品 三、实验要求1、按照数据结构实验任务书,提前做好实验预习与准备工作。2、加“*”题目必做,其他题目任选;多选者并且保质保量完成适当加分。3、严格按照数据结构实验报告模板和规范,及时完成实验报告。 四、实验步骤(说明:依据实验内容分别说明实验程序中用到的数据类型的定义、主程序的流程以及每个操作(成员

2、函数)的伪码算法、函数实现、程序编码、调试与分析、总结、 附流程图与主要代码)、数据结构与核心算法的设计描述(程序中每个模块或函数应加注释,说明函数功能、入口及出口参数)1、单链表的结点类型定义/* 定义DataType为int类型 */typedef int DataType;/* 单链表的结点类型 */typedef struct LNode DataType data; struct LNode *next;LNode,*LinkedList;2、初始化单链表 LinkedList LinkedListInit( ) / 每个模块或函数应加注释,说明函数功能、入口及出口参数 3、清空单链

3、表 void LinkedListClear(LinkedList L)/ 每个模块或函数应加注释,说明函数功能、入口及出口参数4、 检查单链表是否为空 int LinkedListEmpty(LinkedList L) . 5、 遍历单链表void LinkedListTraverse(LinkedList L) . 6、 求单链表的长度int LinkedListLength(LinkedList L) . 7、 从单链表表中查找元素 LinkedList LinkedListGet(LinkedList L,int i) /L是带头结点的链表的头指针, 返回第 i 个元素 8、从单链表表

4、中查找与给定元素值相同的元素在链表中的位置 LinkedList LinkedListLocate(LinkedList L, DataType x) 9、 向单链表中插入元素 void LinkedListInsert(LinkedList L,int i,DataType x) / L 为带头结点的单链表的头指针,本算法 / 在链表中第i 个结点之前插入新的元素 x 10、 从单链表中删除元素 void LinkedListDel(LinkedList L,DataType x) / 删除以 L 为头指针的单链表中第 i 个结点 11、 用尾插法建立单链表 LinkedList Linke

5、dListCreat( ) 、函数调用及主函数设计( 可用函数的调用关系图说明) 程序调试及运行结果分析 实验总结五、主要算法流程图及程序清单 1、主要算法流程图: 2、程序清单 (程序过长,可附主要部分)说明:以后每次实验报告均按此格式书写。 我在布置实验室时,仅给出实验名称、实验目的、实验内容及相关数据结构。题目一程序参考框架# include # include # include # include # include /* 定义ElemType为int类型 */typedef int ElemType;#define TRUE 1#define FALSE 0#define NULL

6、 0#define flag -1/* 单链表的结点类型 */typedef struct LNodeElemType data; struct LNode *next; LNode,*LinkedList;/* 初始化单链表 */LinkedList LinkedListInit() /* 清空单链表 */void LinkedListClear(LinkedList L) /* 检查单链表是否为空 */int LinkedListEmpty(LinkedList L) /* 遍历单链表 */void LinkedListTraverse(LinkedList L) int LinkedLi

7、stLength (LinkedList L) LinkedList LinkedListGet (LinkedList L, int i) LinkedList LinkedListLocate ( LinkedList L, ElemType x) void LinkedListInsert(LinkedList L, int i, ElemType x)LinkedList pre,p,s;int j; pre=L;j=1;p=L-next; while(pre&jnext;j+; if(pre=NULL) printf(给的i值超过了表长);exit(0); s=(LNode *)ma

8、lloc(sizeof(LNode); s-data=x; pre-next=s; s-next=p;void LinkedListDel (LinkedList L,ElemType x) LinkedList pre,p;int j;pre=L;j=1;p=L-next;while(p&p-data!=x)pre=p;p=p-next;j+;if(p=NULL)printf(表中没有值为x的结点);exit(0);pre-next=p-next;free(p);LinkedList LinkedListCreat( ) LinkedList L=LinkedListInit(),p,r;

9、ElemType x; r=L; printf(please input data,input -1 is endn); scanf(%d,&x); while (x!=flag)p=(LinkedList)malloc(sizeof(LNode); p-data=x; r-next=p; r=p;scanf(%d,&x); r-next=NULL; return L;int scan()int d; printf(please input the operationn); printf(1.初始化 2.清空3.求链表长度4.检查链表是否为空n); printf(5.检查链表是否为满 6.遍历链表 7.从链表中查找元素n); printf(8.从链表中查找与给定元素值相同的元素在顺序表中的位置n); printf(9.向链表中插入元素10. 从链表中删除元素n); printf(其他键退出。n); scanf(%d,&d); return(d);main()int quit=0;int i;ElemType e; LinkedList L; while(!quit) switch(scan() case 1: .; break; case 2: . ;break; case 3: .; break; case 4: .; bre

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论