![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 73
哦豁果奶
现大二软件工程学生
展开
-
二叉树——二叉树代码,你想要的都在这里
本篇文章仅给出关于二叉树的部分代码,若想深入了解二叉树请查看我的其他文章因为本次实验二叉树考察的内容太多了,所以我把它拆分成了三个部分,分别是建立,处理,遍历三个板块,三篇文章可以在我的博客或专栏中找到。以下是链接二叉树递归总头文件:建立二叉树结构,二叉树的三种建立。遍历按层次非递归遍历、先序非递归、先中后序递归遍历二叉树的链表结构处理求二叉树的高度、叶节点数、单分支节点数、双分支节点数,交换左右子树目录。原创 2022-11-23 17:47:01 · 974 阅读 · 1 评论 -
二叉树——处理:求二叉树的深度高度、叶节点数、单分支节点数、双分支节点数,交换左右子树【C语言,数据结构】(内含源代码)
本篇文章仅给出关于二叉树的部分代码,若想深入了解二叉树请查看我的其他文章因为本次实验二叉树考察的内容太多了,所以我把它拆分成了三个部分,分别是建立,处理,遍历三个板块,三篇文章可以在我的博客或专栏中找到。以下是链接建立二叉树结构,二叉树的三种建立。遍历按层次非递归遍历、先序非递归、先中后序递归遍历二叉树的链表结构处理求二叉树的高度、叶节点数、单分支节点数、双分支节点数,交换左右子树目录。原创 2022-11-23 17:28:34 · 1757 阅读 · 0 评论 -
二叉树——遍历:按层次非递归遍历、先序非递归、先中后序递归遍历二叉树的链表结构【C语言,数据结构】(内含源代码)
本篇文章仅给出关于二叉树的部分代码,若想深入了解二叉树请查看我的其他文章因为本次实验二叉树考察的内容太多了,所以我把它拆分成了三个部分,分别是建立,处理,遍历三个板块,三篇文章可以在我的博客或专栏中找到。以下是链接二叉树结构,二叉树的三种建立。包含以下内容:按层次非递归遍历、先序非递归、先中后序递归遍历二叉树的链表结构。原创 2022-11-23 17:10:10 · 928 阅读 · 2 评论 -
二叉树——建立:递归先中后序序列建立二叉树的链表结构【C语言,数据结构】(内含源代码)
本篇文章仅给出关于二叉树的部分代码,若想深入了解二叉树请查看我的其他文章因为本次实验二叉树考察的内容太多了,所以我把它拆分成了三个部分,分别是建立,处理,遍历三个板块,三篇文章可以在我的博客或专栏中找到。以下是链接建立包含以下内容:二叉树结构,二叉树的三种建立。目录。二叉树的基本结构:二叉树的建立:建立空二叉树:先序序列建立二叉树:中序序列建立二叉树:后序序列建立二叉树:原创 2022-11-23 16:48:39 · 1055 阅读 · 0 评论 -
数组:矩阵快速转置 矩阵相加 三元组顺序表/三元矩阵 随机生成稀疏矩阵 压缩矩阵【C语言,数据结构】(内含源代码)
题目:稀疏矩阵A,B均采用三元组顺序表表示,验证实现矩阵A快速转置算法,并设计、验证矩阵A、B相加得到矩阵C的算法。题目分析:1.从键盘输入矩阵的行数、列数,随机生成稀疏矩阵。2.生成矩阵A、B后需先转换成三元顺序表,然后用三元顺序表来进行之后的操作。3.在三元顺序表的基础上使用快速转置(非二维矩阵)。4.得到三元矩阵相加的结果C。5.不仅需要输出三元矩阵,还需要把结果转换成二维矩阵输出,以便题目观察结果。6.程序执行的命令包括:(1)根据输入构造二维矩阵 (2)根据二维矩阵转换原创 2022-11-17 21:51:17 · 3142 阅读 · 0 评论 -
栈:01背包问题(带价值) 栈解法/回溯算法 递归算法【C语言,数据结构】(内含源代码)
背包问题(Knappsack Problem).分别设计背包问题的递归算法,和利用栈解决背包问题的非递归算法,分析比较两种算法的时间复杂度和空间复杂度。需求分析:1.用递归算法解决背包问题2.用栈解决背包问题3.输入两个数代表背包容量与物品个数。然后分两行输入物品重量和价值例如:递归方法还有一种思路,用f[n]个数组来存储选择到第i件物品时的最优价值,这样虽然空间复杂度大了,但更利于人来理解递归是怎么工作的。在这里,我们选用的是机器效率最高的一种递归。原创 2022-10-30 13:36:21 · 2079 阅读 · 0 评论 -
栈:中缀表达式转后缀表达式(逆波兰式)求值(支持多位数)【C语言,数据结构】(内含源代码)
设计并验证以下算法:首先将一个中缀表达式转换成逆波兰式(后缀表达式),然后对此逆波兰表达式求值。需求分析:1.输入分析:可能输入正确的和错误的表达式,可能输入超过一位的数字,输入的表达式可能产生浮点类型的结果,输入中空格可能出现在任何地方,输入由‘#’结尾。(现只输入整数)2.演示程序在用户输入完整表达式后,若表达式不合法则输出相应提示,先输出用户表达式,再输出逆波兰表达式,最后输出其结果。3.程序执行命令包括:(1)接受输入 (2)判断输入 (3)求逆波兰式 (4)根据逆波兰式求值原创 2022-10-30 11:32:09 · 1314 阅读 · 0 评论 -
顺序表:找未出现最小正整数,时间尽可能高效【C语言,数据结构】(内含源代码)
给定一个含n(n>=1)个整数的数组,请设计并实现一个在时间上尽可能高效的算法,找出数组中未出现的最小正整数。例如,数组{-5,3,2,3}中未出现的最小正整数是1;数组{1,2,3}中未出现的最小正整数是4。题目分析:1.输入数据是无序的。2.时间上尽可能高效,代表着我们不能去对数组排序,不然就不是时间高效了。也不能一个一个找,从1开始找该数是否出现,这样的操作时间也是不够高效的。原创 2022-10-29 10:08:29 · 1456 阅读 · 1 评论 -
顺序表:删除相同元素O(n),(就地)逆置顺序表,建立顺序表【C语言,数据结构】(内含源代码)
设计并验证以下算法:设顺序表L中的数据元素为整数且非递增有序,删除其值相同的多余元素,即顺序表L中相同元素只保留一个,并逆置删除后的顺序表L。1.根据键盘输入数据建立顺序表L。2.输出顺序表L,删除之相同多余元素后的顺序表L,逆置的顺序表L。3.假设顺序表的长度是n,要求以O(n)的时间复杂度完成对值相同多余元素的删除。原创 2022-10-29 09:25:32 · 1262 阅读 · 0 评论 -
链表:重新排列链表中的各节点【C语言,数据结构】(内含源代码)
设线性表L=(a1,a2,^,an-1,an)采用带头节点的单链表保存,设计并实现一个空间复杂度为O(1)且时间上尽可能高效的算法,重新排列L中的各结点,得到线性表L'=(a1,an,a2,an-1,a3,an-2……).题目分析:1.空间复杂度为O(1),这个意思是,我们不能用到的工具空间不能随着输入链表长度大小而改变,代表不能复制一个反向链表再插入,这种做法是不行的,这个要求代表,我们只能通过工具指针来进行本题的操作。2.时间上尽可能高效,代表,我们的指针要尽可能的减少遍历链表的次数,这里要注原创 2022-10-28 20:44:35 · 881 阅读 · 0 评论 -
链表:逆置单向头结点链表,删除链表相同元素【C语言,数据结构】(内含源代码)
设计并验证以下算法:判定带头节点单向链表L的数据元素是否为非递增有序。如果是非递增有序的,删除值相同的多与元素,并就地逆置删除后的链表L;如果不是非递增有序的,输出相应的提示。1.根据键盘输入数据,用尾插法建立带头节点的单向链表L。2输出带头结点单向链表L,删除值相同多与元素后的单向链表L,就地逆置后的电箱链表L。原创 2022-10-28 19:55:19 · 509 阅读 · 0 评论