ImageVerifierCode 换一换
格式:DOCX , 页数:48 ,大小:355.96KB ,
资源ID:2400139      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2400139.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构实验指导书.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构实验指导书.docx

1、数据结构实验指导书数据结构实验指导书适用所有数据结构实验独立设课的专业 雷 文 编写 概 述一、课程目的数据结构是一门实践性很强的软件基础课程,为了学好这门课,每个学生必须完成一定数量的上机作业。通过本课程的上机作业,要求在数据结构的选择和应用、算法的设计及实现等方面加深对课程基础内容的理解,同时,实验题中的问题比平时的练习题要复杂,也更接近实际,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。本课程实验的目的是旨在使学生进一步巩固课堂上所学的理论知识;深化理解和灵活掌握教学内容;培养学生算法设计的能力和解决实际问题的程序设计的能力。二、实验名称与学时分配序号实 验

2、 名 称学时数实验类型1线性表顺序存储结构2验证2链表应用2验证3利用栈实现递归2验证4链队列应用2验证 5二叉树遍历4综合 6图的遍历4综合三、实验要求 问题分析充分地分析和理解问题本身,弄清要求做什么,包括功能要求、性能要求、设计要求和约束以及基本数据特性,数据间的联系等。 数据结构设计针对要求解决的问题,考虑各种可能的数据结构,并且力求从中出最佳方案(必须连同算法一起考虑),确定主要的数据结构及全程变量。对引入的每种数据结构和全程变量要详细说明其功能、初值和操作特点。 算法设计算法设计分概要设计和详细设计,概要设计着重解决程序的模块设计问题,这包括考虑如何把被开发的问题程序自顶向下分解成

3、若干顺序模块,并决定模块的接口,即模块间的相互关系以及模块之间的信息交换问题.详细设计则要决定每个模块内部的具体算法,包括输入、处理和输出,采用类C语言描述。 测试用例设计准备典型测试数据和测试方案,测试数据要有代表性、敏感性,测试方案包括模块测试和模块集成测试。 上机调试对程序进行编译,纠正程序中可能出现的语法错误,测试前,先运行一遍程序看看究竟将会发生什么,如果错误较多,则根据事先设计的测试方案并结合现场情况进行错误跟踪,包括打印执行路径或输出中间变量值等手段。三、实验考核每次实验结束后,均应上交实验报告。数据结构课程实验成绩单独考核,占1个学分。实验报告应包括如下内容: 1、问题描述:简

4、述题目要解决的问题是什么。2、设计:包括存储结构设计、主要算法设计等。用类C语言或用框图描述。3、调试报告:调试过程中遇到的问题是如何解决的;对设计和编码的讨论和分析。4、算法分析与改进:算法的时间复杂度和空间复杂度分析;算法改进的设想。5、经验和体会附源程序清单和运行结果。源程序要加注释。如果题目规定了测试数据,则结果要包含这些测试数据和运行输出,当然还可以含有其它测试数据和运行输出(有时需要多组数据)。四、实验时间16学时。实验一 线性表顺序存储结构一、 实验目的1、 掌握使用Turbo C2.0/C+/VC环境上机调试线性表的基本方法;2、 掌握线性表的基本操作:插入、删除、查找以及线性

5、表合并等运算在顺序存储结构上的运算。二、 实验要求1、 认真阅读和掌握本实验的程序。2、 上机运行本程序。3、 保存和打印出程序的运行结果,并结合程序进行分析。4、 按照你对线性表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果三、 注意事项:在磁盘上创建一个目录,专门用于存储数据结构实验的程序。四、 实验内容实验题目1:线性表基本操作的实现这个程序中演示了顺序表的创建、插入、删除和查找,请修改并完成。 程序如下(Turbo2.0环境下程序示例):#include #include /顺序表的定义#define ListSize 100typedef struct int dataL

6、istSize; /*向量data用于存放表结点*/ int length; /*当前的表长度*/SeqList;void main() void CreateList(SeqList *L,int n); void PrintList(SeqList *L,int n); int LocateList(SeqList *L,int x); void InsertList(SeqList *L,int x,int i); void DeleteList(SeqList *L,int i); SeqList L; int i,x; int n=10; /*THE LENGTH OF LIST*/

7、 L.length=0; clrscr(); CreateList(&L,n); /*CREAT THE LIST*/ PrintList(&L,n); /*PRINT THE LIST*/ printf(INPUT THE RESEARCH ELEMENT); scanf(%d,&x); i=LocateList(&L,x); printf(the research position is %dn,i); /*顺序表查找*/ printf(input the position of insert:n); scanf(%d,&i); printf(input the value of inse

8、rtn); scanf(%d,&x); InsertList(&L,x,i); /*顺序表插入*/ PrintList(&L,n); /*打印顺序表*/ printf(input the position of deleten); scanf(%d,&i); DeleteList(&L,i); /*顺序表删除*/ PrintList(&L,n); getch();/*打印顺序表*/*顺序表的建立:*/void CreateList(SeqList *L,int n)int i;printf(please input n numbersn);for(i=1;idatai);L-length=n;

9、/*顺序表的打印:*/void PrintList(SeqList *L,int n)int i;printf(the sqlist isn);for(i=1;idatai);/*顺序表的查找:*/int LocateList(SeqList *L,int x)int i;for(i=1;idatai)=x) return(i); else return(0);/*顺序表的插入:*/void InsertList(SeqList *L,int x,int i)int j;for(j=L-length;j=i;j-)L-dataj+1=L-dataj;L-datai=x;L-length+;/*

10、顺序表的删除:*/void DeleteList(SeqList *L,int i) int j;for(j=i;jlength)-1;j+)L-dataj=L-dataj+1;实验题目2:集合求并说明:分别用两个线性表对集合进行表示,将其中一个集合并到另一个集合。程序如下(C/VC环境)#define INITSIZE 10#define INCREASEMENT 2#define OVERFLOW -1#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#include iostream.h#includestdio.h#incl

11、udestdlib.h#includemalloc.htypedef int Status;typedef char ElemType;typedef struct ElemType *elem; int length; int listsize;SqList;Status InitList(SqList &L) L.elem=(ElemType *)malloc(INITSIZE*sizeof(ElemType); if(!L.elem) exit(OVERFLOW); L.length=0; L.listsize=INITSIZE; return OK;/InitListStatus Li

12、stInsert(SqList &L,int i,ElemType e) if(L.length=L.listsize) L.elem=(ElemType *)realloc(L.elem,(L.listsize+INCREASEMENT)*sizeof(ElemType); if(!L.elem)exit(OVERFLOW); L.listsize=L.listsize+INCREASEMENT; L.elemi=e; L.length+; return OK;/ListInsertStatus CreateList(SqList &L) ElemType e; cine; while(e!

13、=!) L.elemL.length+=e; cine; return OK;/CreateListStatus GetElem(SqList L,int i,ElemType &e) if(iL.length) return ERROR; e=L.elemi-1; return OK;Status equal(ElemType a,ElemType b) if(a=b) return TRUE; else return ERROR;/equalStatus ElemLocate(SqList L,ElemType e,Status (*compare)(ElemType,ElemType)

14、int i; for(i=1;i=L.length;i+) if(*compare)(e,L.elemi-1) return TRUE; return ERROR;/ElemLocatevoid Union(SqList La,SqList Lb,SqList &Lc) int i,j,k; i=j=k=0; ElemType a,b; while(iLa.length) GetElem(La,i+1,a); i+; ListInsert(Lc,k+,a); while(jLb.length) GetElem(Lb,j+1,b); j+; if(!(ElemLocate(La,b,equal) ListInsert(Lc,k+,b); return;void main

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1