《数据结构与算法》实验报告模板讲述.docx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
武汉理工大学实验报告 《数据结构与算法》上机实验 学院(系): 信息工程学院 专业班级: 信息sy 1501?班 学生姓名: 徐惠玲 指导教师: 魏洪涛 实验一 线性结构的操作 一、 实验目的 熟悉掌握链表的创建和操作,了解链表的深层含义。 二、实验内容 编写一个程序,实现顺序表的各种基本运算,并在此基础上完成以下功能:? 1)?初始化顺序表;? 2)?依次采用头插入法插入10个数字; 3)?输出顺序表L;? 4)选择想要实现的功能 5)??输出顺序表L的第n个数字; 6) 输出数字x的位置; 7)??在第n个数字位置上插入f数字; 8)?输出顺序表L;? 9)?删除L的第3个数字; 10)?输出顺序表L;? 11)?释放顺序表。 三、实验环境 硬件:PC计算机 软件:Windows XP, Microsoft Visual C++ 6.0 四、算法设计过程 4.1 题目分析 首先初始化顺序表? (1)?依次采用头插入法插入10个数字;? 输入参数的格式和合法取值范围:依次输入10个数字;?输出格式:按顺序显示这10数字。? (2)选择函数的功能,输入指定的数字实现。? (3)寻找指定元素的地址 输出格式:显示顺序表第三个元素的地址? 测试数据:顺序表第三个元素的地址 (4)?在第4个元素位置上插入元素? 输入参数的格式:在原有顺序表L第4个元素位置插入2332元素。? 输出格式:按顺序显示第4个元素位置插入f元素的顺序表。? 测试数据:依次显示出顺序表的元素。 (5)?删除第三个元素? 输入参数的格式和合法取值范围:在顺序表中删除第三个元素。? 输出格式:按顺序显示删除了第三个元素的顺序表。 ?测试数据:一次显示顺序表。 (6)计算链表的长度 输入参数的格式和合法取值范围:计算链表的长度 输出格式:显示顺序表的长度。 (7)删除链表 输入参数的格式和合法取值范围:链表的当前数据 输出格式:退出了链表的操作部分,可以退出程序 4.2 概要设计 (1)?给出所用抽象数据类型的逻辑定义。? ADTLinkList{? 数据对象:D={ai|ai∈IntegerSet,i=0,1,2,…,n,n≥0}?? 结构关系:R={ai,ai+1|ai,ai+1?∈D}?基本操作:LinkList(L)? 操作前提:L是一个未初始化的线性表。?操作结果:将L初始化为一个空的线性表。? destroy(L)?操作前提:线性表L已存在。? 操作结果:销毁线性表L。? count(L) 操作前提:线性表L已存在。 操作结果:返回L中数据元素个数。 play(L) 操作前提:线性表L已存在。 操作结果:打印表中元素。 ListInsert (L,i ,e) 操作前提:线性表L已存在,1≤i≤ListLength(L)+1。 操作结果:在L中第i个位置之前插入新的数据元素e,L的长度+1。 detelelist(L,i, e) 操作前提:线性表L已存在且非空,1≤i≤ListLength(L)。 操作结果:删除L的第i个元素数据,并用e返回其值,L的长度—1。 search(L, i,e) 操作前提:线性表L已存在,1≤i≤ListLength(L)。 操作结果:用e返回L中第i个元素的地址。 4.3 程序流程图 流程图 五、程序及调试 5.1 每个函数的源程序 #includestdio.h #includectype.h #includemalloc.h typedef struct node{ int data; struct node *next; }listnode; typedef listnode * LinkList; LinkList creatlink(); void cutin(LinkList head); void play(LinkList head); void deletelist(LinkList head); void destroy(LinkList head); void search(LinkList head); void count(LinkList head); main(){ LinkList head; int x; head=creatlink(); play(head); while(1){ printf(你想对链表进行什么操作,请输入(加入节点1删除节点2寻找节点位置3计算节点个数4删除节点退出程序5)); scanf(%d,x); if(x==1){ cutin(head); play(head);} else if(x==2){ d

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档