- 博客(22)
- 收藏
- 关注
原创 层次遍历二叉树求二叉树高度
的(假设每个节点有两个指针分别指向其左孩子和右孩子)。在实际应用中,需要确保。类型定义正确,通常是一个包含数据和左右子树指针的结构体。用C语言编写的,用于计算二叉树的最大深度。
2024-09-30 14:04:48 237
原创 删除一个双向链表中指定数据节点
请注意,在实际项目中,为了保证代码健壮性,我们通常会添加更多的错误检查,例如检查链表是否为空或者需要删除的节点是否存在等。但这段代码主要是展示了基本的删除逻辑。这段代码是用来实现删除一个双向链表中指定数据节点的功能。在C语言中,它定义了一个函数。,表示要从链表中删除的元素值。,该函数接受两个参数:一个指向链表头节点的指针。
2024-09-30 14:04:28 128
原创 层次遍历代码题
这段C语言代码实现的功能是对一个二叉树(假设是二叉搜索树或其他特定类型的二叉树)进行层次遍历(Level Order Traversal)。表明它可能是一个示例或者未明确命名的函数,专门用于展示层次遍历的过程。
2024-09-30 14:04:09 172
原创 2021年真题
一、单选1.数据的(逻辑结构)与数据本身的形式、内容、相对位置、个数无关。2.以下算法的时间复杂度为( )这个循环的主要时间消耗是在,因为它会根据y的初始值执行固定的次数(从2000开始递减)。每次循环检查一次条件并可能修改x和y的值。因此,不考虑if内部条件,循环整体的时间复杂度为O(y),这里y的值是2000,所以实际上是O(2000),只是一个常数阶的函数,此类算法的时间复杂度是O(1)注意:“x--;”单独使用会先返回x当前的值再减1。
2024-09-30 14:02:50 630
原创 数据结构复习
如何用程序代码把现实世界的问题信息化如何用计算机高效地处理这些信息从而创造价值数据:数据是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。【二进制0和1】数据是计算机程序加工的原料。数据元素:是数据的基本单位,通常作为一个整体进行考虑和处理。一个数据元素可由若干数据项组成。数据项:是构成数据元素的不可分割的最小单位。数据结构是相互之间存在一种或多种特定关系的数据元素的集合。数据对象是具有相同性质的数据元素的集合,是数据的一个子集。数据结构的三要素。
2024-09-30 14:01:50 914
原创 排序算法--时间复杂度比较
在归并排序中,对程序进行优化后(即先进行递归,再申请空间)就能实现用多少数据拆多少数组,归并排序是递归调用的方式,在栈底下的方法还没有申请空间时就调用了其本身,如此循环只有栈顶的方法正在运行,成功申请了空间,然后进行排序合并之后,将原本的空间回收了,再执行下面一层的方法,因此可以保证内存中同时存在的数组量一直都很低,实时的空间复杂度就很低。但是归并排序的空间复杂度消耗比较大,为 O(nlogn)。如果是链表结构则是O(n)的空间复杂度,但是链表每个节点都是一份独立空间,实际消耗内存为一个内存页,即4kb。
2024-09-30 14:01:16 211
原创 折半查找-平均查找长度
查找的次数=每一层的层数 x 每一层的结点个数,上图即是1x1 + 2x2 + 3x4 + 4x5 = 37,则查找成功的平均查找长度为37/12,注意:当计算查找失败的平均长度时,层数需要依次减1,即原先第四层变为第三层,然后进行查找失败的次数的计算,即是3x3 + 4x10 = 49(以上算式中“x”前面的为层数,后面为该层的结点数),则对应的查找失败的平均查找长度为49/13。序列{1,2,3,4,5,6,7,8,9,10}采用折半查找,画出折半查找树并求查找成功和查找不成功的平均查找长度。
2024-09-29 15:41:43 166
原创 迪杰斯特拉(Dijkstra)算法
迪杰斯特拉算法是由荷兰计算机科学家在1956年发现的算法,此算法使用类似广度优先搜索的方法解决了带权图的单源最短路径问题。它是一个贪心算法。
2024-09-29 14:34:48 1046
原创 数据结构简答题
1.二维数组 B[n][m]存储以О为起始地址的一维数组中,每个存储单位占K个字节则B[i][j]的地址为?3. n个节点的二叉树,度为1的节点的个数为nl 则叶节点的个数为?动态查找和静态查找的主要区别在于前者包含插入和删除运算,而后者不包含这两种运算。4.请简述动态查找与静态查找的区别。并说明静态和动态查找方法分别有哪些。静态查找包括:顺序查找,折半查找,分块查找。动态查找包括:二叉排序树,平衡二叉树。
2024-09-29 13:47:09 163
原创 有向图-邻接表-表头结点
20.设某有向图中有n个顶点,则该有向图对应的邻接表中有()个表头结点A: n-1B: nC: n+1D:2n-1解析:对于无向图和有向图的邻接表来说,顶点的数量与表头结点的数量是相同的。因为邻接表中的每个表头结点对应着一个顶点,而且每个顶点都至少对应一个表头结点。如果一个顶点的度数为0,那么该顶点的邻接表对应的表头结点为空,但是这种情况并不会影响表头结点的数量与顶点的数量相等。因此,。定义:图(graph)是由一些点(vertex)和这些点之间的连线(edge)所组成的;
2024-09-29 13:15:00 884
原创 希尔排序算法--不稳定--步长
最小的增量必须为1:DM>DM−1>...>D1=1DM>DM−1>...>D1=1。希尔排序的时间复杂度受增量序列影响,最坏情况下时间复杂度O(n^2),平均情况下时间复杂度接近O(n^1.3)。B/D.希尔排序可以看做是一种改进的插入排序,通过分组减少逆序对数量,最终进行插入排序。C.希尔排序在排序过程中可能会改变相同元素的相对位置,因此不是稳定的排序算法。,它是对插入排序的优化,基本思想是先将待排序序列分为若干子序列分别进行。再使用第二个增量,继续同样的操作,直到增量序列里的增量都使用过一次。
2024-09-29 12:13:55 427
原创 邻接矩阵-有向图-拓扑序列
若采用邻接矩阵有向图,矩阵中主对角线以下的元素均为零,则关于该图拓扑序列的结论是( )。A:满二叉树中B:存在,且唯一D:存在,可能不唯一D:无法确定是否存在。
2024-09-29 11:12:15 941
原创 二叉树-叶结点个数
1、在哈夫曼算法中,初始时有n棵二叉树,要经过n-1次合并最终形成哈夫曼树。2、经过n-1次合并产生n-1个新结点,且这n-1个新结点都是具有两个孩子的分支结点。
2024-09-29 04:41:23 832
原创 排序方法--堆排序
1.把无序数组构建成二叉堆,把无序的一串数想象成一个堆,根据要求去从局部到整体构建一个大顶堆或者小顶堆,我们要的就是此时的堆顶元素。首先给定一个无序的序列,将其看做一个堆结构,一个没有规则的二叉树,将序列里的值按照从上往下,从左到右依次填充到二叉树中。3.重现调整除了数组末端(已经确定顺序的元素)以外的元素,去构建堆,然后交换堆顶和当前末尾,构建,交换堆顶和当前末尾。此时发现4小于5和6这两个子节点,需进行调整,左右节点5和6中,6大于5且6大于父节点4,因此交换4和6的位置。
2024-09-29 04:03:17 340
原创 拓扑排序,拓扑序列
是一种针对有向无环图进行的排序方法。它将图中所有顶点排成一个线性序列,使得对于图中的每一条有向边(u, v),顶点u在序列中都出现在顶点v之前。对于一个有向无环图 G (V,E)来说,其拓扑排序是G中所有节点的一种,该次序满足如下条件:如果图G包含边(u,v),则节点u在拓扑排序中处于节点v的前面。显然,如果图G包含环路,则不可能排出一个线性次序。
2024-09-29 03:18:48 410
原创 无向完全图
图G是n个顶点的无向完全图,则下列说法不正确的为()。A.G的邻接多重表需要n(n-1)个边结点和n个顶点结点。D. G所有哦顶点的度的总和为n (n-1)B.G的连通分量个数最少。
2024-09-29 02:54:49 113
原创 计算树的度
题目:若一棵度为7的树有8个度为1的结点,有7个度为2的结点,有6个度为3的结点,有5个度为4的结点,有4个度为5的结点,有3个度为6的结点,有2个度为7的结点,则该树一共有()叶结点。
2024-09-29 02:40:05 166
原创 快速排序-挖坑法+左右指针法
③在走的过程中,若end遇到小于key的数,则停下,begin开始走,直到begin遇到一个大于key的数时,将begin和right的内容交换,end再次开始走,如此进行下去,直到begin和end最终相遇,此时将相遇点的内容与key交换即可。⑤将key的左序列和右序列再次进行这种单趟排序,如此反复操作下去,直到左右序列只有一个数据,或是左右序列不存在时,便停止操作,此时此部分已有序。④此时key的左边都是小于key的数,key的右边都是大于key的数。1、选出一个key,一般是最左边或是最右边的。
2024-09-29 02:09:08 630
原创 二叉树的先序遍历,中序遍历,后序遍历
但是,如果访问到左的时候,左子树又包含其本身的左、根、右,那么限制性玩左子树下一级的先中后遍历后,才能跳出来,当然,其下一级可能又包含下一级,总之要到最深处以及,执行完后,才可以慢慢往外跳转执行。若我们要遍历的是一个非空二叉树,可以根据根结点、左子树、右子树的访问次序来制定三种访问规则,分别是。,即基于树的层次特性确定的次序规则。先、中、后序遍历,是基于树的地柜特性制定的遍历规则。(根结点,左子树,右子树)对于树形结构,稍复杂,由于树的结构是一层一层的,所以可以一层一层地访问这些结点,此方法为。
2024-09-29 01:31:31 372
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人