数据结构-树
muse journal
草地上密密麻麻开满了二月兰,都一样啊,密密麻麻都一样,这里面有一个是我,有一个也许是你,不是天安门门口的迎宾花,也不是河间里的牛尾巴草,做二月兰也挺好的,但真正疼苦的是认识到自己只是一株二月兰,走不出这,一亩三分地。
展开
-
数据结构-树-应用题-5.5-3
前缀编码,二叉树,408数据结构真题原创 2024-05-12 16:21:20 · 173 阅读 · 0 评论 -
数据结构-树-应用题-5.5-2
并查集,哈夫曼树,数据结构,408统考真题原创 2024-05-12 16:16:04 · 182 阅读 · 1 评论 -
数据结构-树-应用题-5.4-6
对于每个节点,根据其度数 `d`,找到其所有子节点,并适当设置 `lchild` 和 `rsibling` 指针。如果节点有子节点(`d > 0`),则将第一个子节点设置为 `lchild`。定义几个整数变量用于控制循环和记录状态:`i` 和 `j` 作为循环计数器,`d` 用于存储当前节点的度数,`k` 用于跟踪当前处理的子节点的索引。初始化 `pointer` 数组,为每个节点设置数据和将子节点和兄弟节点指针初始化为 NULL。- `T`:指向 CStree 结构的引用,将作为创建的树的根节点返回。原创 2024-05-12 16:12:41 · 1037 阅读 · 1 评论 -
数据结构-树-应用题-5.4-5
根据孩子树和兄弟树的高度,选择更大的值,并加上当前节点本身的高度(即加 1)作为当前节点的高度,然后返回这个高度值。函数名为 `height`,接受一个孩子兄弟表示法的树 `bt` 作为参数,返回该树的高度。树的根节点由链表的头部表示,每个节点的。否则,分别计算当前节点的孩子树和兄弟树的高度,递归调用 `height` 函数。定义两个变量 `hc` 和 `hs`,用来存储当前节点的孩子树和兄弟树的高度。指向节点的下一个兄弟节点。节点还可能包含其他属性,例如节点的值或标签。指向节点的第一个孩子节点,原创 2024-05-12 15:46:19 · 263 阅读 · 1 评论 -
数据结构-树-应用题-5.4-4
编程求以孩子兄弟表示法存储的森林的叶结点数。孩子兄弟表示法就是二叉树表示法。原创 2024-05-12 15:26:28 · 160 阅读 · 0 评论 -
数据结构-树-应用题-5.4-1,5.4-2,5.4-3,5.4-7
原创 2024-05-12 15:17:48 · 126 阅读 · 0 评论 -
数据结构-树-应用题-5.3-21
它接收三个参数:一个 `BiTree` 类型的 `bt`,这里假设 `BiTree` 是一个结构体,其中包含了一个整数数组 `BiTNode` 和它的长度 `length`;这几行定义了布尔类型 `bool` 在 C 语言中的等价表示,其中 `true` 等于 1,`false` 等于 0。递归调用 `judge` 函数以检查当前节点的右子树(在数组中的位置为 `k*2+2`)。这行检查当前索引 `k` 是否在数组长度内,并且当前节点的值不是 `-1`(假设 `-1` 用来表示不存在的节点,即空节点)。原创 2024-05-12 09:29:57 · 387 阅读 · 0 评论 -
数据结构-树-应用题-5.3-20
输出中缀表达式原创 2024-05-12 09:10:53 · 91 阅读 · 0 评论 -
数据结构-树-应用题-5.3-19
若结点非叶子结点,则左子树不为空时,对左子树递归,右子树不为空对右子树递归,深度参数为本节点深度加一。基于先序遍历,用一个静态变量static记录wpl,把每一个结点的深度作为参数进行传递。若结点是叶子结点,则变量wpl加上该点深度与权值的乘积。原创 2024-05-12 09:00:19 · 212 阅读 · 0 评论 -
数据结构-树-应用题-5.3-18
写出在中序线索二叉树里查找指定结点在后序的前驱结点的算法。原创 2024-05-12 08:47:33 · 211 阅读 · 0 评论 -
数据结构-树-应用题-5.3-15
由于后序序列是在左子树之后遍历右子树,而左子树的部分已经存储在后序序列中,所以右子树的部分应该从左子树部分的后一个位置开始存储,即 `l2 + half`,而右子树的长度是 `half`,所以结束索引应该是 `h2 - 1`。5. `l2` 和 `l2 + half - 1`:后序序列左子树的起始和结束索引。由于后序序列是先遍历左子树,所以左子树的部分应该紧跟在根节点之后,而根节点的位置在 `l2` 处,左子树的长度是 `half`,所以结束索引应该是 `l2 + half - 1`。原创 2024-05-12 08:33:23 · 911 阅读 · 0 评论 -
数据结构-树-应用题-5.3-14
采用层次遍历的方法求出所有节点的层次,并将所有节点和对应的层次放在一个队列中。原创 2024-05-12 08:16:14 · 129 阅读 · 0 评论 -
数据结构-树-应用题-5.3-13
后序遍历最后访问根节点,即在递归算法中,栈是压在栈底的,设p在q的左边,采用,后序非递归算法,后序遍历先遍历到结点p,栈中元素均为p的祖先,先将栈复制到另一辅助栈中,继续遍历到节点q时,将栈中元素从栈顶开始逐个到辅助站中去匹配,第一个匹配的元素即为p和q的公共祖先。原创 2024-05-12 07:59:54 · 189 阅读 · 0 评论 -
数据结构-树-应用题-5.3-12
**定义结构体**:定义了一个结构体 `stack`,其中包含了一个指向二叉树节点的指针 `t` 和一个整型 `tag`。- **栈顶元素标记**:如果栈不为空,将栈顶节点的 `tag` 标记为1(表示该节点已被访问),并将当前节点移动到栈顶节点的右子节点。2. **迭代遍历**:通过循环结构,遍历整个二叉树。- **栈操作**:将当前节点压入栈中,并将 `tag` 标记为0,表示该节点未被访问。- **节点值匹配检查**:如果当前节点的值等于目标值 `x`,则输出该节点的所有祖先节点值,并退出程序。原创 2024-05-12 07:43:51 · 545 阅读 · 0 评论 -
数据结构-树-应用题-5.3-16
中序遍历二叉树,递归的将叶子结点链接。原创 2024-05-11 21:02:01 · 214 阅读 · 0 评论 -
数据结构-树-应用题-5.3-17
T1的左子树和T2的左子树,以及对应的右子树,是"且",且左右是相似的。原创 2024-05-11 20:51:33 · 192 阅读 · 0 评论 -
数据结构-树-应用题-5.3-11
**左子树处理**:如果当前节点 `p` 的左子节点存在,则检查其值是否等于目标值 `x`。- **右子树处理**:如果当前节点 `p` 的右子节点存在,则检查其值是否等于目标值 `x`。- **节点值匹配检查**:如果当前节点的值等于目标值 `x`,则调用 `DeleteTree` 函数删除以该节点为根的子树,并终止程序。- **条件检查**:如果 `bt` 不是 `NULL`(即树或子树不为空),则继续删除过程。- **函数定义**:这个函数接受一个二叉树的引用 `bt`,并删除它的所有节点。原创 2024-05-11 20:40:38 · 477 阅读 · 0 评论 -
数据结构-树-应用题-5.3-10
当在左子树返回的ch不为'#'时,证明已经在左子树中找到,而在右子树递归中,为什么没有if语句,在右子树中找到了就到了,没找到就再也找不到了。原创 2024-05-11 20:22:53 · 176 阅读 · 0 评论 -
数据结构-树-应用题-5.3-9
递归让代码变得简洁,但效率不太高,世间双全的事也是同样的少啊。原创 2024-05-11 20:10:53 · 188 阅读 · 0 评论 -
数据结构-树-应用题-5.3-8
假设二叉树采用二叉链表存储结构存储,试设计一个算法,计算一颗给定二叉树的所有双分支结点个数。原创 2024-05-11 17:30:55 · 132 阅读 · 0 评论 -
数据结构-树-应用题-5.3-7
算法设计思想,使用层次遍历,将所有节点加入队列,若发现空节点,则检查其后面有无空节点,若有则不是完全二叉树。二叉树按二叉链表形式存储,试编写一个判别给定二叉树是否是完全二叉树的算法。原创 2024-05-11 17:25:03 · 145 阅读 · 0 评论 -
数据结构-树-应用题-5.3-6
参数 `l1`, `h1`, `l2`, `h2` 指的是我们当前正在处理的 `A` 和 `B` 数组中的起始和结束索引。- `l2` 到 `l2+llen-1`:在中序遍历(数组 `B`)中,根节点位置前的所有元素都属于左子树。由于 `i` 是中序遍历中根节点的位置,所以左子树的起始位置是 `l2`,结束位置是 `i-1`,即 `l2+llen-1`。由于左子树和根节点共占据 `l1+llen` 个位置,右子树的起始位置是 `h1-rlen+1`,结束位置是 `h1`。原创 2024-05-11 17:13:42 · 488 阅读 · 0 评论 -
数据结构-树-应用题-5.3-5
假设二叉树采用二叉链表存储结构,设计一个非递归算法求二叉树的高度。这个算法思路和代码太妙了。原创 2024-05-11 16:43:17 · 169 阅读 · 0 评论 -
数据结构-树-应用题-5.3-4
试给出二叉树的自下而上、从右到左的层次遍历算法。一般二叉树层次遍历是自上而下、从左至右。原创 2024-05-11 16:31:25 · 88 阅读 · 0 评论 -
数据结构-树-应用题-5.3-3
编写后序遍历二叉树的非递归算法。原创 2024-05-11 16:22:36 · 190 阅读 · 0 评论 -
数据结构-树-应用题-5.3-1,5.3-2
原创 2024-05-11 16:07:00 · 86 阅读 · 0 评论 -
数据结构-树-应用题-5.2-2
【代码】数据结构-树-5.2-2。原创 2024-05-11 14:40:03 · 110 阅读 · 0 评论 -
数据结构-树-应用题-5.2-1
原创 2024-05-11 14:32:24 · 168 阅读 · 0 评论 -
数据结构-树-应用题-5.1-1
5)树中的度指的是结点的分叉个数,也就是所谓的孩子个数,树的最大度数为m,则称该树为m叉树。节点数n=23+n4,度数和为n1+2*n2+3*n3+4*n4。4)具有n个结点的m叉树的最小高度为(当这棵树为完全二叉树)h最小高度为h=[log3(2n+1)](向上取整),当m为2时,高度为h的二叉树至多有。2)度为m的数中,第i层上至多有。3)高度为h的m叉树至多有。原创 2024-05-11 08:19:51 · 670 阅读 · 0 评论