算法与数据结构实验

上传人:新** 文档编号:563867509 上传时间:2023-10-02 格式:DOC 页数:60 大小:455.50KB
返回 下载 相关 举报
算法与数据结构实验_第1页
第1页 / 共60页
算法与数据结构实验_第2页
第2页 / 共60页
算法与数据结构实验_第3页
第3页 / 共60页
算法与数据结构实验_第4页
第4页 / 共60页
算法与数据结构实验_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《算法与数据结构实验》由会员分享,可在线阅读,更多相关《算法与数据结构实验(60页珍藏版)》请在金锄头文库上搜索。

1、.学 生 实 验 报 告 册理工类课程名称:算法与数据构造 专业班级学生*:学生:所属院部: 计算机工程学院 指导教师: 章海鸥 2016 2017 学年 第 1 学期 金陵科技学院教务处制实验报告书写要求实验报告原则上要求学生手写,要求书写工整。假设因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸一律采用A4的纸。实验报告书写说明实验报告中一至四项容为必填项,包括实验目的和要求;实验仪器和设备;实验容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加工程。填写考前须知1细致观察,及时、准确、如实记录。2准确说明,层次清晰。3尽量采用专用术语来说明事物。4外文、符号、

2、公式要准确,应使用统一规定的名词和符号。5应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。实验报告批改说明实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。实验报告装订要求实验批改完毕后,任课教师将每门课程的每个实验工程的实验报告以自然班为单位、按*升序排列,装订成册,并附上一份该门课程的实验大纲。. .实验工程名称: 顺序表 实验学时: 2 同组学生:实验地点:实验日期:实验成绩:批改教师:批改时间:. .实验1 顺序表一、实验目的和要求掌握顺序表的定位、插入、删除等操作。二、实验仪器和设备VC6.0三、实验容与过

3、程含程序清单及流程图1、必做题(1) 编写程序建立一个顺序表,并逐个输出顺序表中所有数据元素的值。编写主函数测试结果。(2) 编写顺序表定位操作子函数,在顺序表中查找是否存在数据元素*。如果存在,返回顺序表中和*值相等的第1个数据元素的序号序号从0开场;如果不存在,返回1。编写主函数测试结果。(3) 在递增有序的顺序表中插入一个新结点*,保持顺序表的有序性。解题思路:首先查找插入的位置,再移位,最后进展插入操作;从第一个元素开场找到第一个大于该新结点值*的元素位置i即为插入位置;然后将从表尾开场依次将元素后移一个位置直至元素i;最后将新结点*插入到i位置。(4) 删除顺序表中所有等于*的数据元

4、素。2、选做题(5) 两个顺序表A和B按元素值递增有序排列,要求写一算法实现将A和B归并成一个按元素值递减有序排列的顺序表允许表中含有值一样的元素。程序清单:(1)#include #define ma*size 20typedef int datatype;typedef structdatatype datama*size;int last; sequenlist;void CreateList(sequenlist *L,int n)int i;printf(please input n numbersn);for(i=0;idatai); (*L).last=n; void Print

5、List(sequenlist *L,int n)int i; printf(the sequenlist isn); for(i=0;idatai);main() int i,*; int n=10; sequenlist L; CreateList(&L,n); PrintList(&L,n); getchar(); (2)#include typedef int datatype; #define ma*size 1024 typedef struct datatype datama*size; int last; sequenlist; int fun(sequenlist L,int

6、 *,int n) int i;for(i=0;in;i+)if(L.datai=*)return i;return -1;void main()sequenlist L;int i,n,y;int *;printf(请输入元素的个数:);scanf(%d,&n);for(i=0;in;i+)scanf(%d,&L.datai);printf(n请输入要查找的数据元素:);scanf(%d,&*);y = fun(L,*,n);if (y=1)printf(n所要查找的数据元素不存在n);elseprintf(n数据元素%d所在的位置为%dn,*,y);(3)#include #define

7、ma*size 100 typedef struct int datama*size; int last; sequenlist;main() int i,*,j; sequenlist l=1,2,4,5,6,7,8,6; printf(n插入元素前的数据为:);for(i=0;i=l.last;i+) printf(%2d,l.datai); printf(n请输入要插入的元素:); scanf(%d,&*); for(i=1;i*) break; if(il.last ) l.data l.last +1=*; else for(j=l.last;j=i-1;j-) l.dataj+1=

8、l.dataj; l.datai-1=*; l.last+; printf(插入元素后的数据为:n); for(j=0;j=l.last;j+) printf(%3d,l.dataj); printf(n);return 0; (4)#include #define ma*size 100 typedef struct int datama*size; int last; sequenlist; main() int i,j,*=0,k=0; sequenlist L=1,3,5,7,2,4,6,8,2,9,9;printf(n原数据为:); for(i=0;i=L.last;i+) prin

9、tf(%3d,L.datai); printf(n请输入要删除的数据:); scanf(%d,&*); for(i=1;i=L.last+1;i+) if(L.datai-1=*)for(j=i;j=L.last+1;j+) L.dataj-1=L.dataj; L.last-; i-; k=1; if(k=1) printf(删除后的数据为:n); for(j=0;j.实验工程名称: 单链表 实验学时: 2 同组学生:实验地点:实验日期:实验成绩:批改教师:批改时间:. .实验2 单链表一、实验目的和要求1、实验目的掌握单链表的定位、插入、删除等操作。2、实验要求1注意链表的空间是动态分配的

10、,*结点不用之后要及时进展物理删除,以便释放其存空间。2链表不能实现直接定位,一定注意指针的保存,防止丧失。二、实验仪器和设备Visual C+6.0三、实验容与过程含程序清单及流程图1、必做题(1) 编写程序建立一个单链表,并逐个输出单链表中所有数据元素。(2) 在递增有序的单链表中插入一个新结点*,保持单链表的有序性。解题思路:首先查找插入的位置然后进展插入操作;从第一个结点开场找到第一个大于该新结点值的结点即为插入位置;然后在找到的此结点之前插入新结点;注意保存插入位置之前结点的指针才能完成插入操作。(3) 编写实现带头结点单链表就地逆置的子函数,并编写主函数测试结果。2、选做题指针LA和LB分别指向两个无头结点单链表的首元结点。要求编一算法实现,从表LA中删除自第i个元素起共len个元素后,将它们插入到表LB中第j个元素之前。程序清单:1#include #include typedef struct node int data; struct node *ne*t; *Linklist,Node; Linklist creat(int n) Linklist head,r,p; int *,i; head=(Node*)malloc(sizeof(Node); r=head; printf(输入数字:n); for(i=n;i0;i

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号