树的先序遍历的栈实现
树的先序遍历的栈实现
先把根节点访问了,右子树入栈,去访问左子树。
1 void preorder(tree bt) //先序遍历bt所指的二叉树 2 { 3 tree stack[n]; //栈 4 int top = 0; //栈顶指针 5 tree P; 6 while(bt || top) 7 { 8 while(bt) //非叶结点 9 { 10 cout << bt->data; //访问根 11 stack[++top] = bt->rchild; //右子树压栈 12 bt = bt->lchild; //遍历左子树 13 } 14 if(top) //栈中所有元素出栈,遍历完毕 15 { 16 bt = stack[top--]; 17 } 18 } 19 }
版权申明:欢迎转载,但请注明出处
一些博文中有一些参考内容因时间久远找不到来源了没有注明,如果侵权请联系我删除。
在校每年国奖、每年专业第一,加拿大留学,先后工作于华东师范大学和香港教育大学。
2024-12-13:27岁,宅加太忙,特此在网上找女朋友,坐标上海,非诚勿扰,vx:fan404006308
AI交流资料群:753014672