数据结构(c语言版本).doc

数据结构(c语言版本).doc

ID:61510425

大小:1.55 MB

页数:22页

时间:2021-02-08

数据结构(c语言版本).doc_第1页
数据结构(c语言版本).doc_第2页
数据结构(c语言版本).doc_第3页
数据结构(c语言版本).doc_第4页
数据结构(c语言版本).doc_第5页
资源描述:

《数据结构(c语言版本).doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、苏州科技学院数据结构(C语言版)实验报告专业班级测绘1012学号姓名周兵兵实习地点系机房指导教师史守正实验一线性表一、程序设计的基本思想,原理和算法描述:(包括程序的结构,数据结构,输入/输出设计,符号名说明等)1.定义数据结构,Sqlist顺序结构,并定义该类型的指针变量*L。2.初始化顺序表,长度为0。并输入10个整数,通过选择菜单来打印输出3.通过函数的调用分别进行插入、删除、修改操作二、源程序及注释(打包上传):三、运行输出结果:四、调试和运行程序过程中产生的问题及采取的措施:查找元素是函数不会调用,后详细了解了变量的意思和用途之后问题得以解决。删除功能不能

2、实现,自习检查程序才发现程序代码写错。还有函数的调用也会出现问题。五、对算法的程序的讨论、分析,改进设想,其它经验教训:这道实验题是最基本的实验,所用算法也是书上给出的,编程过程中没遇到太大的问题,只是C的小细节没有把握,所以经常报错。今后一定要加强巩固以前的知识点。实验二栈和队列一、程序设计的基本思想,原理和算法描述:(包括程序的结构,数据结构,输入/输出设计,符号名说明等)该程序主要有输入输出、查找、插入、删除等功能。这些功能是通过建立线性链表来实现。线性链表就是以结点的形式将数据连接起来,每个结点包括数据域和指针域,通过指针的后继指向将数据组织起来。首先开辟一

3、个内存空间,然后初始化数据,并且根据要求将这些数据逆向存储在指针所指向的地址里,之后进行查找、插入、删除、转换单链表为循环链表、合并单链表的操作即可。二、源程序及注释(打包上传):三、运行输出结果:四、调试和运行程序过程中产生的问题及采取的措施:值传递和址传递易出错,复习C之后重新编写,问题得以解决五、对算法的程序的讨论、分析,改进设想,其它经验教训:在栈和队列在实际问题的运用方面还比较模糊。还有针对不同版本的C编写程序时应当注意其中一些符号的表示方法。实验三数和二叉树一、程序设计的基本思想,原理和算法描述:二叉树是由3个基本单元组成:根结点、左子树和右子树。本例采

4、用二叉链表作为存储结构,但是在输入时用的是先序序列的方式。程序包含了二叉树的建立,前序、中序和后序遍历的操作,求所有叶子及结点总数的操作等。二、源程序及注释(打包上传):三、运行输出结果:四、调试和运行程序过程中产生的问题及采取的措施:调试的时候在参数之间的传递时出现的错误,由于对于二叉树的结构还没有彻底的了解在传值传址时很模糊,通过多次的尝试来完成程序。五、对算法的程序的讨论、分析,改进设想,其它经验教训:三种二叉树链表的遍历是递归的实现方式,对于在理解方面比较困难,但是可以以正常的思维去理解,不必拘泥过深的探讨。另外,第五项功能节点赋值有点问题,目前还未解决。总

5、的来说这次试验有难度。实验四图一、程序设计的基本思想,原理和算法描述:1)有向图从某个定点出发沿以该顶点为尾的弧进行深度优先搜索遍历,并按其所有邻接点的搜索都完成的顺序将顶点排列起来。从最后完成搜索的顶点出发,沿着以该顶点为头的弧作为逆向的深度优先搜索遍历,若此次遍历不能访问到有向图中所有顶点,则从余下的顶点中最后完成搜索的那个顶点出发,继续作逆向的深度优先搜索遍历,以此类推,直至有向图中所有顶点都被访问到为止。2)无向图对无向图进行遍历时,至于连通图,仅需从图中任一顶点出发,进行深度优先搜索或者广度优先搜索,便可访问到图中的所有顶点。对非连通图,则需从多个顶点出发

6、进行搜索,而每一次从一个新的起始点出发进行搜索过程中得到的顶点访问序列恰为其各个连通分量中的顶点集。二、源程序及注释(打包上传):三、运行输出结果:四、调试和运行程序过程中产生的问题及采取的措施:对顶点进行深度和广度遍历时,需要分析清楚各个顶点的搜索顺序,通过对指针的正确分析可以解决这一问题。五、对算法的程序的讨论、分析,改进设想,其它经验教训:本程序第二个功能尚未实现,关于有向网的程序没运行起来,如果能将其完善会更好,另外,本程序在实现一种功能时需退出,不然不能进行其他功能的操作。实验五查找一、程序设计的基本思想,原理和算法描述:中序遍历二叉树的方法是:中序遍历左

7、子树;访问跟结点;中序遍历右子树。第一个问题在实验三中已提及;中序遍历二叉排序树时,其算法思想是:p指向二叉树的根结点;while(p不为NULL或栈不为空),当前结点指针p不断进栈,左移直至最左下结点为止。若栈不为空,则退栈,访问跟结点,使p=p->rchild,遍历右子树。在二叉排序树上查找其关键字等于给定值的结点过程,恰是走过了一条根结点到该结点的路径的过程,和给定值比较的关键字个数等于路径长度加1,因此,与折半查找类似,与给定值比较的关键字个数不超过树的深度。然而,折半查找长度为n的表的判定树是唯一的,而含有n个结点的二叉排序树却不唯一二、源程序及注释(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。