主题:中序遍历二叉树问题(出现死循环)
/*编译环境: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);
}
问题出在前序创建二叉树上面,但我不知道怎么修改
目的:中序遍历二叉树
出现的问题:编译显示没有错误,但是不能达到目的
*/
#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);
}
问题出在前序创建二叉树上面,但我不知道怎么修改