数据结构课程设计之-树与二叉树的转换(6)
时间:2026-01-19
时间:2026-01-19
if(!s.empty()) {
p=s.top(); s.pop(); p=p->rchild; } } }
5.后序遍历树的递归算法 void inoeder(BTNode *T) {
if(T!=NULL) {
inoeder(T->firstchild); printf("%d ",T->data); inoeder(T->rightsib); } }
6后序遍历树的非递归算法
void postOrder2(BinTree *root) //非递归后序遍历 {
stack<BTNode*> s; BinTree *p=root; BTNode *temp;
while(p!=NULL||!s.empty()) {
while(p!=NULL) //沿左子树一直往下搜索,直至出现没有左子树的结点 {
BTNode *btn=(BTNode *)malloc(sizeof(BTNode)); btn->btnode=p; btn->isFirst=true; s.push(btn); p=p->lchild; }
if(!s.empty()) {
temp=s.top(); s.pop();
if(temp->isFirst==true) //表示是第一次出现在栈顶 {
temp->isFirst=false; s.push(temp);
p=temp->btnode->rchild;
上一篇:人教版小学四年级下册语文期末试卷
下一篇:病理生理学问答题重点