tanhehe

第一种:

Tree q[MAXN];

void InOrderTraverse(Tree T){
    int top = 0;
    Tree p = T;
    while(p || top != 0){
        if(p) {q[top++] = p; p = p->lchild;}//根指针进栈,遍历左子树
        else{   //根指针退栈,访问根结点,遍历右子树
            p = q[--top];
            printf("%c", p->data);
            p = p->rchild;
        }
    }
}

第二种:

Tree q[MAXN];

void InOrderTraverse(Tree T){
    int top = 0;
    Tree p;
    q[top++] = T;
    while(top != 0){
        while((p = q[top-1]) != NULL){q[top++] = p->lchild;}    //向左走到尽头
        top--;  //空指针出栈
        if(top != 0){   //访问结点,向右一步
            p = q[--top]; printf("%c", p->data);
            q[top++] = p->rchild;
        }
    }
}

 

分类:

技术点:

相关文章:

  • 2021-08-28
  • 2022-01-24
  • 2022-02-13
  • 2022-01-11
  • 2021-11-07
  • 2022-12-23
  • 2021-11-20
猜你喜欢
  • 2022-02-23
  • 2022-02-08
  • 2021-11-21
  • 2022-12-23
  • 2021-12-10
  • 2021-04-24
  • 2022-02-05
相关资源
相似解决方案