二叉树的非递归实现先序遍历 末蓝、 2022-05-08 19:46 155阅读 0赞 //先序遍历非递归算法的实现 用到自定义的栈 void preOrderNonrecursion(BTNode *bt) { if(bt !=null) { BTNode *stack[maxSize]; //先定义一个栈用于存放遍历的二叉树 int top=-1; BTNode *P; stack[++top]=bt; //元素进栈 while(top!=-1) //进栈不空条件下执行 { p=stack[top--]; //出栈操作 visit(p); //事先定义好的打印节点的操作 if(p->rchild!=null) //先右子树进栈 stack[++top]=p->rchild; if(p->lchild!=null) //再左子树进栈 stack[++top]=p->lchild; } } }
还没有评论,来说两句吧...