数据结构实验
文章平均质量分 60
22的卡卡
本人github:https://github.com/kakaandhanhan/cybersecurity_knowledge_book-gitbook.22kaka.fun
web学习的gitbook:http://gitbook.22kaka.fun
本人的gitbook和github都是开源的,并且上面还有一些工具和脚本也可以免费下载,希望大家可以给我的gitbook项目点亮星星或者follow me 。你的支持就是我最大的动力
展开
-
数据结构期末复习笔记
搬运自己的原创笔记到这,从flowus##因为后面时间不够了,所以没有把笔记做完,期末考试的最后的代码题一般都是书上的代码,考的简单,这个学期就是递归树。原创 2024-01-20 22:04:14 · 481 阅读 · 0 评论 -
实验八 排序算法的实现与分析
这里利用的带有哨兵的插入排序(因为我们在初始化的时候就已经把数组的开始设置成了下标为1开始,所以哨兵就可以放到下标为0的位置),我们从第二个位置开始,依次比较前一个(前面的序列我们默认为已经排序好的),首先我们将处于i位置的放在哨兵位置,就是下标为0的位置,然后,我们从后面依次比较,同时将比较的结果往后移动一位,当前面某个位置分数小于我们哨兵的时候,我们就可以插入了。选定一个数据,然后比较后面的所有的数据,选择一个最小的数据,然后交换,依次选择交换下去,排序完毕。2.按名次列出每个学生的姓名与分数。原创 2024-01-17 14:10:16 · 539 阅读 · 0 评论 -
实验七 基于广度优先搜索的六度空间 理论验证
从栈里面的元素开始访问,访问与元素相邻的一些节点,如果这些节点没有被访问过,就入栈,并且标记为访问的,并且他们距离start的距离,也是在原来的节点距离上加1,如果他们的距离是小于6的,就记一次数。Function1:初始化图,与上一个实验不一样的是,这里边的权重用1和0表示,(1表示有关系,0表示没关系),然后因为是无向图,所以对称的关系都需要赋值。这里有,初始化,入栈,出栈,判断栈是否为空。六.实验遇到的问题及解决办法,实验心得体会及对此实验的意见或建议(有就写,无可不写)。五.实验实习结果及分析。原创 2024-01-17 14:08:07 · 462 阅读 · 0 评论 -
实验六 基于 Dijsktra 算法的最短路径求解
然后依次访问有路径的节点,选择路径最小的节点,然后对这个节点,进行看看,是否加了这个节点后,这个节点到其他节点的路径是否变短了,如果有那么就更新路径。然后一直重复,直到访问完所有的节点。Function1:初始化图,将结构体里面的节点数和边数都输入,然后根据路径间的关系,对邻接矩阵进行填充,如果在两个节点间有路径,则在对应的邻接矩阵中修改权重(首先要将邻接矩阵初始化,就是将所有的全部变成无穷大)。六.实验遇到的问题及解决办法,实验心得体会及对此实验的意见或建议(有就写,无可不写)。五.实验实习结果及分析。原创 2024-01-17 14:06:06 · 1022 阅读 · 0 评论 -
实验五 基于二叉树的表达式求值算法
然后读取字符串,当读入的是数字的时候,我们将创建一个子树,将数字作为data存储在子树中,然后压入栈中(这里因为读取的是字符串,很可能读取的是多位的数字,所以我们需要将数字合并)。如果读取到的是运算符,我们将比较运算符栈的栈顶元素和这个元素的优先级,如果是栈顶元素大于字符串中的运算符,那么我们就开始进行运算,将栈顶元素弹出,同时弹出两个操作数的子树,然后将他们合并成为一棵树,然后压入操作数栈中。六.实验遇到的问题及解决办法,实验心得体会及对此实验的意见或建议(有就写,无可不写)。五、实验实习结果及分析。原创 2024-01-17 14:03:19 · 627 阅读 · 0 评论 -
实验四 基于哈夫曼树的数据压缩算法
Function3:进行哈夫曼编码,从根节点开始,一步一步找到双亲结点,如果是双亲结点的左子树,就记0,如果是双亲结点的右子树就是1,因为是从最底下的叶子节点开始的,所以得到的编码是反的,需要变成正的。Function4:译码,从得到的编码开始,从根结点出发,如果是0就往左子树找到子节点,如果是1就往右找到子节点,一直回溯,直到找到了叶子节点。六.实验遇到的问题及解决办法,实验心得体会及对此实验的意见或建议(有就写,无可不写)。输入一串字符串,根据给定的字符串中字符出现的频率建立相应的哈夫曼树,原创 2024-01-17 14:00:44 · 863 阅读 · 0 评论 -
实验三 基于字符串模式匹配算法的病毒 感染检测问题
因为使用的是通过读取文件的操作来进行读取数据的,在读取每一行的时候,会多读取一个/n,并且在使用strlen()函数的时候会把\n也读取进去,所以在复制字符串,以及使用他们的长度的时候都需要注意一下,本人被这个调试了很久。Function4:主函数,用的文件读取,先打开文件,读取文件里面的字符串然后先复制病毒串,然后利用bf算法,然后将结果如果是0就是NO,1是YES。六、实验遇到的问题及解决办法,实验心得体会及对此实验的意见或建议(有就写,无可不写)。Function2:初始化字符串,创建字符串。原创 2024-01-17 13:58:23 · 939 阅读 · 0 评论 -
实验二 基于栈的算术表达式求值
Function8:主函数,首先创建运算符栈和运算数栈,然后输入需要计算表达式,然后一个一个读取,并且对他们进行操作,如果是数字,就压入操作数栈,如果是运算符,如果是大于,就计算,小于就压入,等于就弹出。最开始的时候,使用的两个都是字符栈,导致很多地方需要修改字符变成数字,然后又要把数字转化为字符。Function 1:初始化数字栈,打算创建的是操作数和运算符两个数字栈,这样可以实现多位的数字计算。六、实验遇到的问题及解决办法,实验心得体会及对此实验的意见或建议(有就写,无可不写)。原创 2024-01-17 13:56:05 · 545 阅读 · 0 评论 -
实验一 基于线性表的图书信息管理
直接进行遍历,先查到最大的图书,得到他的第一本最大的图书,用一个指针记录下来,然后再创建一个链表,将其他的同样的最大的图书,相当于复制到这个新的链表里面。并且因为是先写完所有的函数再写的主函数,然后改错的时候非常麻烦,所以应该边写一个函数,边进行测试,不然排错太麻烦了,而且一些小细节不容易查出来。采用的是链式结构存储,利用了顺序表的链式创建和初始化表,有一个头节点,为了处理的时候不要考虑特殊情况。六、实验遇到的问题及解决办法,实验心得体会及对此实验的意见或建议(有就写,无可不写)。直接利用链表的删除节点。原创 2024-01-17 13:53:31 · 874 阅读 · 2 评论