




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科学生实验报告姓名 张汉清 实验课程名称 数据结构(C语言版) 实验名称 线性表 开课学期 2009 至 2010 学年 第二 学期 云南师范大学旅游与地理科学学院编印一、实验准备实验名称:线性表实验时间:2010年6月2日实验类型:设计性实验1、实验目的和要求:掌握使用turboc2软件上机调试线性表的基本方法;掌握线性表的基本操作:对线性表的数据元素进行访问、插入、删除等运算在顺序存储结构上的实现。运用线性表编写一个程序,并通过对所编程序进行调试,加强编程的能力,认识线性表。2、实验材料及相关设备:计算机一台(装有turboc2软件)、数据结构(C语言版)(清华大学出版社)一本3、实验理论依据或知识背景:一般情况下,在第i(1in)元素之间插入一个元素时,需将第n至第i(共n-1+1)个元素向后移动一个位置,如下:Status ListInsert_Sq(SqList &L,int I,ElemType e)/在顺序线性表L中第i个位置之前插入新的元素e,/i的合法值为1iListLength_Sq(L)+1If(iL.length+1)return ERROR; /i值不合法If(L.length=L.listsize) /当前存储空间已满,增加分配 newbase=(ElemType *)realloc(L.elem, (L.listsize+LISTINCREMENT)*sizeof(ElemType); If(!newbase)exit(OVERFLOW); /存储分配失效 L.elem=newbase; /新基址 L.listsize+=LISTINCREMENT; /增加存储容量q=&(L.elemi-1); /q为插入位置for(p=&(L.elemL.length-1);p=q;-p)*(p+1)=*p; /插入位置及之后的元素右移*q=e; /插入e+L.length; /表长增1Return OK;/ListInsert_Sq一般情况下,删除第i(1in)元素时需将从第i+1至第n(共n-i)个元素依次向前移动一个位置,如下:Status ListInsert_Sq(SqList &L,int I,ElemType e)/在顺序线性表L中删除第i个元素,并用e返回其值,/i的合法值为1iListLength_Sq(L)If(iL.length)return ERROR; /i值不合法p=&(L.elemi-1); /p为被删除元素的位置e=*p; /被删除的元素的值付给eq=L.elem+L.length-1; /表尾元素的位置for(+p;p=q;+p)*(p-1)=*p; /被删除元素之后的元素左移-L.length; /表长减1Return OK;/ListDelete_Sq/ListDelete_Sq二、实验内容、步骤和结果1 实验方法步骤及注意事项认真阅读和掌握本实验的算法。运行turboc软件,新建一个文档,将程序打入,调试、运行;注意检查并修改程序中的错误。2. 实验程序#include typedef struct nodeint data;struct node *next;LNode;LNode *create()int x,n=0;LNode *h,*p,*q;h=(LNode*)malloc(sizeof(LNode);q=h;scanf(%d,&x);while(x!=-1)p=(LNode*)malloc(sizeof(LNode);p-data=x;q-next=p;q=p;n+;scanf(%d,&x);q-next=0;h-data=n;return h;void out(LNode *h)LNode *p;p=h;printf(n);while(p!=0)printf(%6d,p-data);p=p-next;LNode *search(LNode *h,int i)LNode *p;int j=1;p=h-next;while(p!=0)&(jnext;j+;if(p=0) | ji)return (NULL);return p;void insert(LNode *h,int x,int y)LNode *s,*p,*q;s=(LNode*)malloc(sizeof(LNode);s-data=y;q=h;p=h-next;while(p!=NULL)&p-data!=x)q=p;p=p-next;if(p!=NULL)s-next=p;q-next=s;elseq-next=s;s-next=NULL;h-data+;int delete(LNode *h,int i)LNode *p,*q;int j=1;q=h;p=h-next;while(p&jnext;j+;if(!p) return 0;q-next=p-next;free(p);h-data-;return 1;main()LNode *h,*p;h=create();out(h);p=search(h,4);if(p!=NULL)printf(n%d,p-data);elseprintf(n dont find!);insert(h,99,999);out(h);insert(h,88,999);out(h);delete(h,4);out(h);3.实验结果截图打开软件,打开程序并调试运行,输入数据:7,12,28,32,50,68,82,-1。得到的结果截图如下:三、实验小结1、实验中出现过的问题(或错误)、原因分析(1)键入的程序运行后发现错误很多,需要调试,原因是写程序时不够认真;(2)程序有些细节部分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 森林防火知识培训必要性
- 森林火灾知识培训内容
- 森林法基础知识培训课件
- 幼儿园培训教学课件
- 2025年老年护理专业招聘考试预测题
- 风湿疾病试题及答案
- 2025健康照护技师考试题库及答
- 2025年物流师中级考试要点预测题集
- 2025年人事处招聘考试行政职业能力测试题
- 2025年初级导游证考试必-备知识点与模拟题
- 住院病人防止走失课件
- 2025年临床助理医师考试试题及答案
- 2025年南康面试题目及答案
- 汽车标定工程师培训课件
- 速叠杯教学课件
- GB/T 45767-2025氮化硅陶瓷基片
- 2025年第十届“学宪法、讲宪法”活动知识竞赛题库及答案
- 地产直播活动方案
- 广东省安装工程综合定额(2018)Excel版
- 2025年云南省初中学业水平考试物理及答案
- 留疆战士考试试题及答案
评论
0/150
提交评论