回 帖 发 新 帖 刷新版面

主题:中序遍历二叉树问题(出现死循环)

/*编译环境:tc 3.0
目的:中序遍历二叉树
出现的问题:编译显示没有错误,但是不能达到目的
*/
#include "stdafx.h" 
#include <iostream>  
using namespace std; 
typedef char ElemType;
typedef struct BiTNode
{
    ElemType data;
    struct BiTNode *lchild,*rchild;
}BiTNode;
typedef BiTNode *BiTree;
void CreateTree_Pre(BiTree &t)
{
    ElemType ch;
    cin>>ch;
    if(ch=='#')  t=NULL;
    t=new BiTNode;
    while(t->data!='#')
    {
        t->data=ch;
        CreateTree_Pre(t->lchild);
        CreateTree_Pre(t->rchild);
    }    
}

void InorderTravel(BiTree t)
{
    if(t)
    {
        InorderTravel(t->lchild);
        cout<<t->data;
        InorderTravel(t->rchild);
    }
}

void main()
{
    BiTree t;
    CreateTree_Pre(t);
    InorderTravel(t);
}

问题出在前序创建二叉树上面,但我不知道怎么修改

回复列表 (共1个回复)

沙发

为什么不用递归?既简单又方便

我来回复

您尚未登录,请登录后再回复。点此登录或注册