



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南方医科大学生物医学工程学院_电子信息工程_系数据结构实验报告姓名田媛学号113200880200009专业年级08电子信息工程单元第2章内容线性表日期2010-6-7实验题目实验一 线性结构(综合性实验 3学时)实验目的本次实习的主要目的在于熟悉线性表的基本运算在两种存储结构上的实现,其中以熟悉各种链表的操作为侧重点。通过本次实习还可复习高级语言的使用方法。实验内容 一、必做题:二、选做题:问题描述 约瑟夫(Joeph)问题的一种描述是:编号为1,2,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。试设计一个程序求出出列顺序。基本要求 利用单向循环链表存储结构模拟此过程,按照出列的顺序印出各人的编号。测试数据 m的初值为20;密码:3,1,7,2,4,8,4(正确的结果应为6,1,4,7,2,3,5)。实验要求及讨论(本次实验的要求是否达到,有何问题,是怎么解决的)一、 抄写自己所选择的题目。二、 写出算法设计思路。三、 编写代码,调试运行,实现题目要求(提示:考虑到插入和删除的位置是否超出范围等可能出现的异常问题)。 四、写出算法设计、编程和调试运行的体会。一、 抄写自己所选择的题目。1、已知一顺序表A,其元素非递减有序排列,编写一个算法,删除顺序表中值相同多余的元素(相同值保留一个)。2、已知带头结点的单链表L中的节点是按整数值递增排序的,试写一算法,将值为x的节点插入到表L中,使得表L仍然有序。分析算法的时间复杂度。二、 写出算法设计思路。1建立一个顺序表用于存储一组非递减排序的整形数据,对顺序表中的每个元素与其下一个元素进行比较操作。用指针记录当前所比较的元素,如果相等则对当前指针所指向的元素进行删除操作,并将它后面的数据前移,再与下一个元素比较,如果还相等就继续删除操作,否则指向下个元素,再比较直至无重复的元素。2. 建立一个带头节点的单链表,其节点按整数值递增排序。创建一个新的节点,并由键盘输入节点的值。将其与链表中原有的节点(头节点不参与比较)按顺序作比较,并用指针指向当前的位置,若不大于当前节点,则在当前位置这前作插入操作,否则在最后作插入操作。三、编写代码,调试运行,实现题目要求(提示:考虑到插入和删除的位置是否超出范围等可能出现的异常问题)。解1#include stdio.h#include conio.h#define SIZE 18#define ERROR 0#define OK 1int length; /* 定义宏观变量*/typedef int status;typedef struct int *elem; int length; int listsize; SqList;status ListDelete(SqList *L) /*删除顺序表L中值相同多余的元素(相同值保留一个)*/ int i=0,j,n=0; 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,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(nThe 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;return 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(nAfter 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); getch();时间复杂度为:O(n)四、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年护理三基知识考试复习题库及答案
- 安丘市2025-2026学年八年级下学期语文月考模拟试卷
- 阿勒泰市2025-2026学年七年级下学期语文期末测试试卷
- 2025 年小升初石家庄市初一新生分班考试数学试卷(带答案解析)-(人教版)
- 2025 年小升初沧州市初一新生分班考试语文试卷(带答案解析)-(部编版)
- 北京2025年会计证《财经法规与职业道德》试题
- 社区网格实体化建设课件
- 安徽省合肥市经开区清华附中2024-2025学年八年级(下)期中物理试卷(含答案)
- 农村腌菜销售合同范本
- 瓷砖商品购销合同范本
- 旧物募捐活动方案
- 《中华人民共和国传染病防治法(2025年版)》解读
- 智慧城市建设的伦理考量与社会责任
- 幼儿发展评价手册使用培训
- 口腔门诊客服工作计划
- 出租可行性报告
- 电工入场安全教育试卷(含答案)
- 数字化牙科扫描技术-洞察及研究
- JG/T 269-2010建筑红外热像检测要求
- 医院晋升晋级管理制度
- T/CNFAGS 15-2024绿色合成氨分级标准(试行)
评论
0/150
提交评论