数据结构 实验报告1顺序表_第1页
数据结构 实验报告1顺序表_第2页
数据结构 实验报告1顺序表_第3页
数据结构 实验报告1顺序表_第4页
数据结构 实验报告1顺序表_第5页
已阅读5页,还剩4页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、南方医科大学生物医学工程学院_电子信息工程_系 数据结构实验报告 姓名 王浩文学 号113200880200010 专业 年级 08电子信息工程单元 章 第2内 容线性表 日期2010-5-21 实验题目 学时)(综合性实验 3实验一 线性结构 实验目的本次实习的主要目的在于熟悉线性表的基本运算在两种存储结构上的实现,其中以熟悉 各种链表的操作为侧重点。通过本次实习还可复习高级语言的使用方法。 实验内容 一、必做题: 二、选做题:个人按顺时的)问题的一种描述是:编号为1,2,nn问题描述 约瑟夫(Joeph,。一开始任选一个正整数作为报数上限值m针方向围坐一圈,每人持有一个密码(正整数)的人出

2、列,将m时停止报数。报m从第一个人开始按顺时针方向自1开始顺序报数,报到报数,如此下去,值,从他在顺时针方向上的下一个人开始重新从1他的密码作为新的m 直至所有人全部出列为止。试设计一个程序求出出列顺序。利用单向循环链表存储结构模拟此过程,按照出列的顺序印出各人的编基本要求 号。,1,48,4(正确的结果应为6,的初值为测试数据 m20;密码:31,72,4 。,35),72实验要求及 讨论(本次实验的要求是否有何问达到,是怎么解题, 决的) 一、抄写自己所选择的题目。 二、写出算法设计思路。三、编写代码,调试运行,实现题目要求(提示:考虑到插入和删除的位置是否超出范 围等可能出现的异常问题)

3、。 四、写出算法设计、编程和调试运行的体会。 一、抄写自己所选择的题目。 1 南方医科大学生物医学工程学院_电子信息工程_系 数据结构实验报告 ,其元素非递减有序排列,编写一个算法,删除顺序表中值相同多余的元素(相同值保留一A1、已知一顺序表 个)。中,使Lx的节点插入到表2、已知带头结点的单链表L中的节点是按整数值递增排序的,试写一算法,将值为 仍然有序。分析算法的时间复杂度。得表L 二、写出算法设计思路。对顺序表中的每个元素与其下一个元素进行比较操作。建立一个顺序表用于存储一组非递减排序的整形数据,1再如果相等则对当前指针所指向的元素进行删除操作,并将它后面的数据前移,用指针记录当前所比较

4、的元素, 与下一个元素比较,如果还相等就继续删除操作,否则指向下个元素,再比较直至无重复的元素。 建立一个带头节点的单链表,其节点按整数值递增排序。创建一个新的节点,并由键盘输入节点的值。将其2. 与链表中原有的节点(头节点不参与比较)按顺序作比较,并用指针指向当前的位置,若不大于当前节点,则在 当前位置这前作插入操作,否则在最后作插入操作。 。实现题目要求(提示:考虑到插入和删除的位置是否超出范围等可能出现的异常问题)三、编写代码,调试运行,I: 法解1#include stdio.h #include conio.h #define SIZE 10 main() int SqList_AS

5、IZE=23,3,45,65,23,44,5,7,89,0; int i,j,n,m,l=SIZE; for(i=0;il;i+) printf(%d ,*(SqList_A+i); printf(The new one is:n); for(i=0;i(l-1);i+) for(j=0;j(l-1);j+) if(SqList_Ai=SqList_Aj) if(i!=j) n=i;m=i+1; for(;ml;n+,m+) SqList_An=SqList_Am; l=l-1; for(i=0;il;i+) printf(%d ,*(SqList_A+i); printf(n); getch

6、(); II:法#include stdio.h #include conio.h #define SIZE 18 #define ERROR 0 #define OK 1 */ int length; /* 定义宏观变量typedef int status; typedef struct 2 南方医科大学生物医学工程学院_电子信息工程_系 数据结构实验报告 int *elem; int length; int listsize; SqList; status ListDelete(SqList *L) */ L中值相同多余的元素(相同值保留一个) /*删除顺序表 int i=0,j,n=0;

7、 SqList *p=L; if(!p) return ERROR; while(ilength) if(*(p-elem+i)=*(p-elem+i+1) */ 删除相同多余的元素 /* for(j=i;jlength;j+) *(p-elem+j)=*(p-elem+j+1); n+; p-length-; if(!(*(p-elem+i)=*(p-elem+i+1) */ i判断第个数是否任和下一个数相同 /* i+; length=SIZE-n; return n; main() int aSIZE=1,2,2,5,6,7,7,12,13,13,13,18,19,20,21,24,24

8、,39,t; int n,m; SqList A; A.elem=a; for(n=0;nSIZE;n+) printf(%d ,an); A.length=A.listsize=SIZE; t=ListDelete(&A) ; if(!t)printf(ListDelete ERROR!n); else printf(The new one is:n); for(n=0;ndata=ai; */ 创建整数值递增排序链表for(i=1;inext=(node *)malloc(sizeof(node); p=p-next; p-data=ai; p-next=NULL; L-next=h; r

9、eturn OK; status ListInsert(node *L,int x) int i,k; for(i=0;i=ai&x=k;i-) ai+1=ai; ak=x; main() node *L,*p; int t,x,i,k; printf(Please input the number you want to insert x:n); scanf(%d,&x); printf(The List is:n); for(i=0;iSIZE;i+) printf(%d ,ai); printf(After inert,the new one is:n); L=(node *)malloc(sizeof(node); if(!L) printf(ERROR!n);return; */ 创建链表 t=CreatList(L); /* if(!t) printf(ERROR!n);return; ListInsert(L,x); for(i=0;iSIZE+1;i+) printf(%d ,ai); 4 南方医科大学生物医学工程学院_电子信息工程_系 数据结构实验报告 getch(); O(n) 时间复杂度为: 写出算法设计、编程和调试运行的体会。四、语言半年的学习可以说掌握的基本可以,但是三天不上手就会手生。现在再次运用时尽忘

温馨提示

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

最新文档

评论

0/150

提交评论