数据与结构实验
文章平均质量分 63
。。。。。。。。。。
m0_73709731
这个作者很懒,什么都没留下…
展开
-
数据与结构实验七:排序算法实现与比较
1、编写排序算法时,经常会出现程序能运行,但是运行结果有误的情况,这就需要掌握程序的单步调试方法。而单步调试的快捷键对于不同的编译环境是不同的,比如VC6与codeblock就有所区别。1、随机生成要排序的数据,使用rand函数的之前记得调用函数srand。另外,编写排序算法后,还需要多用不同的数据运行测试几次。2、介绍随机数生成的方法和注意事项,使用rand函数。3、有能力希望能掌握多种排序算法,并进行比较。第二题:线下实验中进行排序算法的比较。(2)掌握几种高效的排序方法。原创 2023-11-04 14:39:10 · 149 阅读 · 1 评论 -
数据与结构实验六:图操作及应用
循环:遍历distance数组,找distance数组中属于旧图中的点,其中distance最小的那个结点循环:遍历distance数组,找distance数组中属于旧图中的点,其中distance最小的那个结点。:此数组是用来表示标号对应的结点是否已经被添加到新图中(因为只有旧图中的点我们才需要添加到新图中,并且只有旧图中点到源点的距离,我们才需要进行更新)其中N为图中结点的个数。自己编写代码的时候注意,书上仅仅是给出了最短路径的源代码,离一个完整的程序还有距离,其中要补充图的读写的函数和定义一些常量。原创 2023-11-04 14:33:01 · 244 阅读 · 1 评论 -
数据与结构实验五:huffman树创建及哈夫曼编码
如果是说明已经读到了一个叶子(字符),翻译一个字符成功,把该叶子结点代表的字符存在一个存储翻译字符的数组中,然后继续从根结点开始读,直到读完这串哈夫曼序列,遇到结束符便退出翻译循环。次循环,每次先找输入的权值中最小的两个结点,把这两个结点的权值相加赋给一个新结点,并且这个新结点的左孩子是权值最小的结点,右孩子是权值第二小的结点;编码的思想是逆序编码,从叶子结点出发,向上回溯,如果该结点是回溯到上一个结点的左孩子,则在记录编码的数组里存。个叶子结点,构建哈夫曼树,给出每个叶子结点对应编码的程序。原创 2023-11-04 14:28:30 · 1351 阅读 · 1 评论 -
数据与结构实验四:二叉树的建立、遍历及应用
测试输入(树的先根序,具体二叉树见上):12#5#6##3#4## 预期输出(转换后二叉树的先根序遍历序列):1。(1)输入二叉树的先根序序列,构造二叉树 (2)输出所构造的二叉树的叶子个数。测试输入(注意#是特殊的字符,并不会被插入二叉树中):ABC##D##E#F#G## 预期输出:3。处补充代码,完成创建一棵二叉树,并输出该二叉树的先根、中根、后根遍历结果。(1)第一关:二叉树链式存储结构设计及二叉树创建和遍历算法;(2)能根据实际问题,设计二叉树存储结构并设计相应算法。处补充代码,完成本关任务。原创 2023-11-04 14:18:33 · 1764 阅读 · 1 评论 -
数据与结构实验三:队列操作实现及应用
(1)scanf函数一般格式为scanf(“%s”,st),但scanf默认回车和空格是输入不同组之间的间隔和结束符号,所以输入带空格,tab或者回车的字符串是不可以的。(2)可以用scanf(“%[^/n]”,str)//遇到回车结束,/n换成c则表示遇到字符c结束 (3)这里假设所输入的字符串没有空格,tab或者回车之类的字符。本关任务: (1)编写实现队列,至少包括建立空队列、判断队列是否为空、入队、出队和求队头元素等功能, (2)设计主程序调用队列和自己在前面实验中实现的栈实现回文判断算法。原创 2023-11-04 14:13:26 · 256 阅读 · 1 评论 -
数据与结构实验一:一元多项式的加法
(1)单链表的基本接口设计与实现,至少包括建立空的链表、判断链表是否为空、插入运算、删除运算和查找运算等功能,并设计主程序对接口进行测试。合理设计实现链表和多项式加法的子函数,函数的输入参数设计合理,尽量减少全局变量的使用。(4)选作:多项式A和B相减,建立多项式C=A-B,并输出相加的结果多项式D。(2)设计链表表示多项式的数据结构设计,并设计算法实现多项式的加法运算。(3)多项式A和B相加,建立多项式C=A+B,并输出相加的结果多项式C。(2)掌握用链表实现多项式加法的操作。原创 2023-11-04 13:04:20 · 166 阅读 · 1 评论 -
数据与结构实验二:栈
:+与栈顶元素比较,比栈顶元素优先级小,则一直出栈到+为老大为止,即出栈并打印*,之后+入栈,栈中元素为(假设左边为栈底)#+-:-与栈顶元素比较,比栈顶元素优先级大,则-入栈,栈中元素为(假设左边为栈底)#*(-*:*与栈顶元素比较,比栈顶元素优先级大,则*入栈,栈中元素为(假设左边为栈底)#*):-(依次出栈,仅打印-,栈中元素为(假设左边为栈底)#*22:输出22,栈中元素为(假设左边为栈底)#*(-31:输出31,栈中元素为(假设左边为栈底)#(:(入栈,栈中元素为(假设左边为栈底)#*(原创 2023-11-04 13:11:50 · 56 阅读 · 1 评论