数据结构
hahalalaorz
这个作者很懒,什么都没留下…
展开
-
二叉树的自下而上,从右到左的层序遍历算法
//实际上是需要一个维护一个队列和一个栈。按照层次遍历入队,但是弹出的指针进入栈,最后对栈进行Pop就可得到逆序的层序遍历 //在原层序遍历的基础代码上进行简单的修改,即将visit()改为Push(S,p) void InvertLevel(BiTree T){ BiTree p = T//工作指针 InitQueue(Q); InitSlack(S); EnQueue(S,p);//...原创 2019-07-14 19:21:39 · 1564 阅读 · 1 评论 -
已知先序和中序序列分别存储在A、B数组中,建立二叉树的二叉链表
通过先序加中序很显然是可以唯一建立一棵二叉树的,过程呢就是在先序数组中定位根节点,再到中序数组中找到这个元素, 那么在这个元素之前的就是左子树节点,在这个元素右边的就是右子树节点,实际上就是地递归的对区间进行划分 /*通过先序加中序很显然是可以唯一建立一棵二叉树的,过程呢就是在先序数组中定位根节点,再到中序数组中找到这个元素, 那么在这个元素之前的就是左子树节点,在这个元素右边的就是右子树节...原创 2019-07-18 16:27:35 · 1148 阅读 · 0 评论 -
非递归遍历算法求二叉树的高度(附递归算法)
非递归(借助层序遍历队列) //使用非递归算法实现求二叉树的高度 //我们可以采用层序遍历的方式(使用顺序存储结构),设置一个last指针指向每层的最后一个节点指针,当出队时比较出队指针和last指针,若相同那么level+1 int Hight(BiTree T){ BiTree p = T; BiTree Queue[MAXSIZE]; int front = -1, rear = ...原创 2019-07-17 20:49:25 · 1362 阅读 · 1 评论