- 博客(8)
- 收藏
- 关注
原创 当一棵有n(n≤100)个结点的二又树对按顺序存储方式有存储在bt[1…n]中,求出二又树中结点值分别为x和y两个结点的最近公共祖先的值
结点x的双亲结点为结点 x/2,若x/2=y,则结点x/2是原结点x和结点y的最近公共祖先结点,若x/2≠y,则令x=x/2即以该结点x的双亲结点为起点,采用递归的方法继续查找。2)若y>x则结点y所在层次大于或等于结点y所在层次。结点y的双亲结点为结点y/2. 若y/2=x,则结点y/2是原结点x和结点y的最近公共祖先结点,若y/2≠x,则令y=y/2.重复上述过程,直到找到它们最近的公共祖先结点为止。解题分析 二叉树中任意两个结点必然存在最近公共祖先结点,最坏的情况下是根结点,即x和y在左右子树上。
2024-11-24 11:13:02
156
原创 有几个结点的完全二叉树存放在一维数组A[1.. N]中,建立一棵用二叉链表表示的二叉树,根由T指向
【代码】有几个结点的完全二叉树存放在一维数组A[1.. N]中,建立一棵用二叉链表表示的二叉树,根由T指向。
2024-11-24 10:39:00
101
原创 求二叉树中p和q的最近公共祖先
算法思想:利用后序非递归遍历,借助栈来实现。第一步,利用栈先遍历到p所指结点,这时栈中全是p的祖先,第二步,将栈中元素全部复制到另一个栈中,继续遍历,直到q结点出现,此时遍历结束。让栈1和栈2中元素进行比较匹配,第一个相等的即为最近公共祖先。
2024-11-20 11:03:21
430
1
原创 二叉树后序遍历(递归与非递归)
非递归 算法思想:第一步:借助栈,从根结点沿着左子树进行访问,并依次进栈,直到左子树为空。第二步访问栈顶元素,若该结点有右子树,且未被访问过,则让该结点出栈,让右子树入栈,并依次执行第三步:否则,栈顶元素出栈。递归 算法思想:左右根。
2024-11-18 14:14:41
179
原创 二叉树中序遍历(递归与非递归)
非递归 算法思想:借助栈,第一步初始化栈,在根结点不为空或者栈不为空时,将根结点入栈,并依次访问左孩子,第二步,如果左孩子访问完成,开始出栈访问,并访问其右孩子。递归 算法思想:左根右。
2024-11-17 11:28:53
165
原创 二叉树的层次遍历(递归)
算法思想:借助队列,先将根节点入队,再出队,访问,若根节点的左孩子不空,将左孩子入队,若右孩子均不为空,将右孩子入队,最后再出队依次遍历完成。
2024-11-17 10:53:21
157
原创 二叉树自下而上,从右自左的层次遍历(递归)
算法思想:这个要求算法正好是原有层次遍历算法的反转,可以利用层次遍历算法,若队列非空,先让根结点入队,然后再出队入栈,并访问该结点,若它有左右孩子,将其左右孩子入队,并再次重复刚才操作,(出队,入栈,访问该结点是否有左右孩子),直至二叉树遍历完成,最后若栈非空,把栈内所有元素出栈。
2024-11-16 11:45:12
290
1
原创 unity2020.1版本中的increment Snapping
由于本人跟着网上教程完成一个项目的练习,网上的是2023版本的unity,而我的是2020版本,里面有些功能的组件地址不一样,所以我就寻找了一下,解决了这个问题。
2024-06-03 11:46:22
516
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人