二叉树的非递遍历
一.前序非递归遍历
1.前序非递归遍历原理
二叉树的非递归遍历需要借助栈来实现,将根节点压栈,再出栈顶元素,再将这个元素的左右孩子压栈(次序,右孩子先进入,左孩子后进入),重复上述操作,直至遍历结束。
2.图解
3.代码实现
定义栈结构,操作:
//链栈结构
typedef struct SNode {
struct TNode * node;
struct SNode* next;
}*LinkStack,StackNode;
//初始化
bool initStack(LinkStack &S) {
S = NULL;
return true;
}
//进栈
bool Push(LinkStack& S,TNode* e) {
StackNode* q=(StackNode*)malloc(sizeof(StackNode));
if (q == NULL) {
return false;
}
q->node =
二叉树的非递遍历最先出现在Python成神之路。
共有 0 条评论