数据结构(c语言版本)_第1页
数据结构(c语言版本)_第2页
数据结构(c语言版本)_第3页
数据结构(c语言版本)_第4页
数据结构(c语言版本)_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、苏州科技大学数据结构(c语言版本)实验报告专科班测量1012学号姓朱炳兵实习场所是机房地图教师纠错实验线性时钟。一、程序设计的基本思想、原理和算法说明:(包括节目结构、数据结构、输入/输出设计、符号名称说明等)1.定义数据结构、Sqlist顺序结构,然后定义相应类型的指针变量*L。2.零长度初始化顺序表。输入10个整数以选择菜单打印输出3.通过函数调用分别执行插入、删除和修改操作二、源代码和注释(上载包):三、业务输出结果:四、节目调试和执行过程中出现的问题和措施:元素查找是不调用函数的,详细了解了变量的意义和用途后,问题得到了解决。如果未实现删除功能,自学习检查器会发现节目代码写错了。函数调

2、用也可能出现问题。五、对算法的讨论、分析、改进想法、其他教训:牙齿实验问题是最基本的实验。使用的算法也列在书里,在编程过程中没有出现大问题。只是c的小细节没有被掌握,所以经常报告错误。今后必须巩固以前的知识点。实验2堆栈和队列一、程序设计的基本思想、原理和算法说明:(包括程序的结构、数据结构、输入/输出设计、符号名称说明等)牙齿程序主要有输入输出、查找、插入、删除等功能。这些功能通过创建线性关联列表来实现。线性链接表以节点形式连接数据,每个节点包含数据字段和指针字段,并通过指针的后续方向组织数据。首先打开内存空间,然后初始化数据,必要时将数据逆向存储在指针指向的地址中。然后,您可以将单链表格撷

3、取、插入、删除、转换为回路链表格,并合并单链表格。二、源代码和注释(上载包):三、业务输出结果:四、节目调试和执行过程中出现的问题和措施:值传递和地址传递容易出错,检查并重新编写C可解决问题。五、对算法程序的讨论、分析、改进构想、其他教训:栈和队列在实际问题的运用上也比较模糊。另外,为不同版本的C编写程序时,请注意如何表示其中的一些符号。实验3数和二叉树一、程序设计的基本思想、原理和算法说明:二进制树由三个茄子基本单元组成:根节点、左侧子树和右侧子树。牙齿示例使用二进制链表作为存储结构,但在输入时使用顺序。程序包括设置二叉树、前序、中间序、后序遍历任务,以及获取所有叶和节点的总数。二、源代码和

4、注释(上载包):三、业务输出结果:四、节目调试和执行过程中出现的问题和措施:调试时在参数间传递中发生的错误是因为对二叉树的结构还没有完全理解,所以传递值时模糊,通过多次尝试完成程序。五、对算法程序的讨论、分析、改进构想、其他教训:三茄子二叉树链表的遍历是递归的实现方式,在理解上比较困难,但可以理解为正常的原因,不需要过多地讨论。另外,第五个功能节点分配存在问题,尚未解决。总的来说,这次实验有难度。实验4度一、程序设计的基本思想、原理和算法说明:1)直接图形沿从特定点开始到该顶点结束的圆弧进行深度优先搜索遍历,并按照搜索所有相邻点完成的顺序排列顶点。搜索首先从最后完成的顶点开始,沿从该顶点开始的

5、圆弧向后搜索深度。如果牙齿遍历无法访问方向图中的所有顶点,则从剩馀顶点开始,从上次完成搜索的顶点开始,继续反向深度优先遍历搜索,依此类推,直到访问图形中的所有顶点。2)无向图在遍历无方向图时,对于连接图,可以通过在图中的所有顶点上执行深度优先搜索或宽度优先搜索来访问图中的所有顶点。对于未连接的图形,必须从多个顶点进行搜索,每次在新的起点进行搜索时,获得的顶点访问序列是每个连接组件中的一组顶点。二、源代码和注释(上载包):三、业务输出结果:四、节目调试和执行过程中出现的问题和措施:遍历顶点的深度和宽度时,必须分析每个顶点的搜索顺序,正确分析指针可以解决牙齿问题。五、对算法程序的讨论、分析、改进构

6、想、其他教训:牙齿方案的第二个功能尚未实施。定向到网络的程序未运行。如果能弥补这一点,那就更好了。此外,实施功能时必须终止牙齿程序。否则,您将无法执行其他功能。实验5祖怀一、程序设计的基本思想、原理和算法说明:按中间顺序遍历二叉树的方法是按中间顺序遍历左侧的子树。访问和节点;中间顺序通过右侧子树。第一个问题在实验3中提到。中间顺序通过二进制排序树时,算法是P指向二进制树的根节点。While(p不为NULL牙齿或堆栈不为空),当前节点指针P进入继续堆栈,向左移动到最左侧的底部节点。如果堆栈不为空,请退出堆栈并访问脚跟节点,使p=p-rchild通过右侧子树。在辅助排序树中查找关键字等于指定值的节

7、点进程是通过从根节点到该节点的路径的过程,与指定值比较的关键字数类似于半子句查找,因为路径长度等于1。与给定值比较的关键字数不超过树的深度。但是,折叠长度为N的表的评估树是唯一的,而具有N个节点的二进制排序树不是唯一的。二、源代码和注释(上载包):三、业务输出结果:四、节目调试和执行过程中出现的问题和措施:中间顺序通过非迭代算法时,循环条件top=0对top1执行top,因此不满意。二叉树中每个节点在堆栈中的层次规则是,每个节点的深度等于右侧孩子的深度,每个节点的深度小于左侧孩子的深度1牙齿。五、对算法程序的讨论、分析、改进构想、其他教训:堆栈顶部记录中的指针实际上表示堆栈顶部、每个push(

8、)进入或pop()退出的p。他代表的是正在访问的节点应该得到下一个节点。例如,访问树T的左侧子树t-lchild时,堆栈顶部为T。访问T-lchild-lchild时,堆栈顶部为T-lchild。访问T-rchild时堆栈顶部为空;是。访问T-lchild-rchild时,堆栈顶部为t;存取T-rchild-lchild时,堆叠顶部纬度t;访问T-rchild-rcchild时,堆栈顶部仍然为空。他的意思是访问当前子树后,访问与堆栈顶部记录中的指针相对应的节点上的数据。实验第6名一、程序设计的基本思想、原理和算法说明:直接插入的基本想法是,根据键大小在以前排序的子表中的适当位置插入要排序的记录

9、,一次插入一个,直到完成所有唱片插入。直接插入排序:要排序的记录在数组R0.假设它存储在N-1中。在排序过程的中间点,R表示两个子地块R I.分为N-1。其中,前面的子地块是对齐区域。下一个子宗地是目前未对齐的部分。直接插入排序的基本任务是将当前无序区域的第一个唱片Ri对齐到的区域R0.插入到I-1的适当位置,从而使r 1.I成为新的对齐区域。牙齿方法通常称为增量方法,因为一次向排序的区域添加一条记录。时间复杂度为o(n2)。(2)排序交换的基本思想是比较两个人要排序的记录的关键字,如果发现两个记录的顺序相反,则进行排序,直到没有相反的记录为止。冒泡排序:在无序区域中,通过相邻唱片关键字之间的比较和位置交换,关键字最小的记录像泡沫一样逐渐移动到水面上。整个算法从底部的记录开始,比较两个相邻的关键字,将关键字较小的记录替换为关键字较大的唱片上,以确保冒泡排序后关键字最小的记录到达顶部。然后,在其馀记录中查找关键字较小的记录,并将其替换为第二个位置。依次类推,直到所有记录都井然有序。2快速排序:选择要排序的N个唱片之一(通常是第一个唱片),将其放置在最终位置,然后数据序列被牙齿记录分为两部分。所有比牙齿唱片键小的记录放在前一节中,所有比键大的记录放在后一节中,记录放在两部分之间。然后对所有两个区段重复以上程序,直到每个区段仅有一个记录

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论