- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构一实验报告
《数据结构与算法》实验报告
专业 信息与计算科学 班级 姓名 学号 实验项目
实验一 线性表的基本操作
实验目的
1、掌握顺序存储结构上的插入、删除、查找等基本操作的实现
2、掌握链式存储结构上的插入、删除、查找等基本操作的实现
实验内容
题目1:
建立一顺序结构的线性表,并对其完成插入、删除和查找工作
题目2:
建立一链式结构的线性表,并对其完成插入、删除和查找工作
算法设计分析
1.顺序结构的线性表
(一) 数据结构的定义
#define?N?50#include?stdio.hint?L[N];??//顺序表int?LEN;??//记录顺序表表长
(二)总体设计
主函数:统筹调用各个函数以实现相应功能
void?main()(2)顺序线性表建立函数:建立顺序表对数据进行存储void?creat(int?*L,int?*len)?//建立顺序表
(3)顺序插入数据函数:在顺序表的插入在顺序表L的第i个位置上插入x
void ins(int *L,int i,int x,int LEN) //顺序表的插入操作
(4)顺序删除数据函数:删除顺序表L的第i个位置上的元素xvoid?del(int?*L,int?i,int?LEN)??//顺序表删除操作
(5)顺序查找数据函数:在顺序表中查找元素int?find(int?*L,int?p,int?LEN)?//顺序表的查找操作
(6)?顺序输出函数
void?putout(int?*L)??//输出顺序表
(7)选择界面函数部分:void?PRINT(int?n)
链式线性表建立函数:用链表指针域建立数据与数据之间的对应关系void?CreateFromTail(LinkList?L)???//用尾插法建立链表
链式查找数据函数:在单链表中找到需要的数据位置,并显示其位置void?Locate(LinkList?L,ElemType?m)?//查找值为x的元素的位置
链式插入数据函数:在单链表中找出对应位置,并插入数据void?ListIn(LinkList?L,int?i,char?x)??/在链表L的第i个位置插入值为x的结点
链式删除数据函数在单链表中找出对应位置,并删除相对应的数据void?ListDel(LinkList?L,int?i)???//删除链表L的第i个元素链表输出函数void?output(LinkList?L)???//链表输出函数
(二)结果分析
1.完成了顺序存储结构上的插入、删除、查找等基本操作
2、完成了链式存储结构上的插入、删除、查找等基本操作
实验总结
1、通过实验还提高了一点改错能力,对于一些常见问题加深了印象。
2、程序由算法和数据结构组成,一个好的程序不仅算法重要,数据结构的设计也很重要。
3、摸索着用C++做完实验,增强了自己的自学能力,这应该是最有用的吧,语言会过时,学习的能力却不会过时。
4、程序由算法和结构组成,一个好的程序不仅算法重要,数据结构的设计也很重要。
5、最重要的是掌握了顺序结构的线性表和链式结构的线性表的插入、查找和删除。
6、线性链表和顺序表都属于线性表,但是线性链表比顺序表灵活,方便;但是,线性表在做元素寻找的操作的时候,必须从头结点开始寻找。在编程序的时候,我们肯定会遇到许多问题:就像我就遇到一个问题,那就是:当我在运行程序的时候,输入一个元素后就不继续做下面的操作也不停止运行,我自己做了好久都没发现问题,后来实在没办法,我就问同学,最后终于发现有一条语句错误,所以写的时候我们要仔细点。
附录 实验程序代码(该部分请加注释)
/*程序定义部分:*/
1.
#define N 50
#include stdio.h
int L[N]; //顺序表
int LEN; //记录顺序表表长
void creat(int *L,int *len) //建立顺序表
{
int i,x;
printf(请输入线性表的数据,以0为结束标志\n);
scanf(%d,x);
i=0;
while(x!=0)
{ L[i]=x;
++i;
scanf(%d,x);
}
(*len)=i;
}
/*选择界面函数部分:*/
void PRINT(int n)
{
do{
printf(请选择:\n);
printf(1:插入\n);
printf(2:删除\n);
printf(3:查找\n);
scanf(%d,n);
}while(n0||n3);
}
int find(int *L,int value,int LEN);
void ins(int *L,int i,int x,int
文档评论(0)