数据结构(c)
qimi123456
天道酬勤
展开
-
利用栈对二叉树的先序遍历(1)
利用栈对二叉树的先序遍历 虽说对二叉树的遍历没有什么比递归更简洁了 ,但是如果一旦二叉树的数据节点庞大之后,再用递归去遍历,效率将会非常之低。因此,需要尝试用新的办法解决这个问题,那么栈是可以的: 算法描述: 首先需要有一个二叉树的根节点bt 1.如果bt不为空,则访问t->data 并进行下一步 ,否则转到4 2.如果t的左子节点,bt->lchild 不为空,则原创 2016-08-07 20:09:25 · 1054 阅读 · 2 评论 -
利用栈实现二叉树的中序遍历(2)
利用栈实现二叉树的中序遍历 续前面说到的栈实现二叉树的先序遍历,现在要说明的而是栈实现二叉树的中序遍历 言归正传:算法描述: 首先有个根节点指针 bt 1.如果bt不为空则入栈 ,否则执行3 2.令bt指向 bt的左子节点 并返回1 3.如果栈不为空则出栈,如果栈为空则程序结束 4.访问此时的数据, 5.让bt指向bt的右子节点 ,并返回1 {CSDN:COD原创 2016-08-07 20:45:07 · 1301 阅读 · 4 评论 -
利用栈实现二叉树的后序遍历
利用栈实现二叉树的后序遍历 算法描述: 首先给出二叉树的根节点指针bt 1.如果bt 不为空, 则入栈 , 否则执行3 2.令bt 指向 bt的左子节点 ,并返回1 3.出栈 bt = pop() 4.如果bt 的 右子节点为空 或者bt 的右子节点 为上一个节点 则 输出数据 否则 执行7 5.输出节点数据后,保存当前节点 , 6.判断栈是否为空,如果不原创 2016-08-07 20:54:40 · 1725 阅读 · 5 评论