《2022年数据结构实验报告 5》由会员分享,可在线阅读,更多相关《2022年数据结构实验报告 5(7页珍藏版)》请在金锄头文库上搜索。
1、v1.0 可编辑可修改1 数据结构 (C 语言版) 实验报告专业:计算机科学与技术、软件工程学号: _3061_ 班级: _软件二班 _ 姓名: _朱海霞 _ 指导教师 : _刘遵仁 _青岛大学信息工程学院2013 年 10 月名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - - - - - - v1.0 可编辑可修改2 实验 1实验题目:顺序存储结构线性表的插入和删除实验目的:了解和掌握线性表的逻辑结构和顺序存储结构,掌握线性表的基本算法及相关的时
2、间性能分析。实验要求:建立一个数据域定义为整数类型的线性表,在表中允许有重复的数据;根据输入的数据,先找到相应的存储单元,后删除之。实验主要步骤:1、分析、理解给出的示例程序。2、调试程序,并设计输入一组数据(3,-5 ,6,8,2,-5 ,4,7,-9 ) ,测试程序的如下功能:根据输入的数据,找到相应的存储单元并删除,显示表中所有的数据。程序代码 :#include#include#define OK 1#define ERROR 0#define OVERFLOW -2#define LIST_INIT_SIZE 100#define LISTINCREMENT 10typedef st
3、ructint* elem;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 7 页 - - - - - - - - - v1.0 可编辑可修改3 int length;int listsize;Sqlist;int InitList_Sq(Sqlist &L)=(int*)malloc(LIST_INIT_SIZE*sizeof(int);if(! return -1;=0;=LIST_INIT_SIZE;return OK;int ListInsert_Sq(Sqlis
4、t&L,int i,int e)if(i+1) return ERROR;if=int *newbase;newbase=(int*)realloc,+LISTINCREMENT)*sizeof(int);if(!newbase) return -1;=newbase;+=LISTINCREMENT;int *p,*q;q=&i-1);for(p=&);p=q;-p)*(p+1)=*p;*q=e;+;return OK;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 7
5、页 - - - - - - - - - v1.0 可编辑可修改4 int ListDelete_Sq(Sqlist &L,int i,int e)int *p,*q;if(ireturn ERROR;p=&i-1);e=*p;q=+;for(+p;padjlisti.firstedge=s; irstedge; G-adjlistj.firstedge=s; /将新结点 *S 插入顶点Vj 的边表头部 /= 定义标志向量,为全局变量=typedef enumFALSE,TRUE Boolean;Boolean visitedMaxVertexNum;/=DFS:深度优先遍历的递归算法=void
6、 DFSM(ALGraph *G,int i) /以 Vi 为出发点对邻接链表表示的图G进行 DFS搜索给出你的编码/=BFS:广度优先遍历=名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 7 页 - - - - - - - - - v1.0 可编辑可修改5 void BFS(ALGraph *G,int k) /以 Vk为源点对用邻接链表表示的图G进行广度优先搜索给出你的编码/= 主函数 =void main() int i; ALGraph *G; G=(ALGrap
7、h *)malloc(sizeof(ALGraph); CreatALGraph(G); printf(Print Graph DFS: ); DFS(G); printf(n); printf(Print Graph BFS: ); BFS(G,3); printf(n);实验结果:1.邻接矩阵作为存储结构2.邻接链表作为存储结构心得体会:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 7 页 - - - - - - - - - v1.0 可编辑可修改6 实验 6实验题
8、目:二分查找算法的实现实验目的:掌握二分查找法的工作原理及应用过程,利用其工作原理完成实验题目中的内容。实验要求:编写程序构造一个有序表L, 从键盘接收一个关键字key, 用二分查找法在L 中查找 key,若找到则提示查找成功并输出key 所在的位置,否则提示没有找到信息。实验主要步骤:1.建立的初始查找表可以是无序的,如测试的数据为3,7,11,15,17,21,35,42,50或者 11,21,7,3, 15,50,42,35,17 。2.给出算法的递归和非递归代码;3.如何利用二分查找算法在一个有序表中插入一个元素x,并保持表的有序性程序代码实验结果:心得体会:名师资料总结 - - -精
9、品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 7 页 - - - - - - - - - v1.0 可编辑可修改7 实验 7实验题目:排序实验目的:掌握各种排序方法的基本思想、排序过程、算法实现,能进行时间和空间性能的分析,根据实际问题的特点和要求选择合适的排序方法。实验要求:实现直接排序、 冒泡、 直接选择、 快速、 堆、归并排序算法。 比较各种算法的运行速度。实验主要步骤:程序代码实验结果:心得体会:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 7 页 - - - - - - - - -