字符串先序建立一个二叉树

维博 2010-03-21 12:25:15
编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树

(以指针方式存储)。例如如下的先序遍历字符串:
ABC##DE#G##F###
其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中

序遍历,输出遍历结果。
...全文
427 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
shanchuanhou 2012-07-09
  • 打赏
  • 举报
回复
简单#include"栈.h"
#include<iostream>
#include<cstdlib>

using namespace std;

int CreateBiTree(BiTree &T) //创建一个二叉树
{

char a;
scanf("%c",&a);
if(a=='#')
T=NULL;
else
{
if(!(T=(BiTNode *)malloc(sizeof(BiTNode))))
return 0;
T->data=a;
T->tag=0;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
return 1;
}

void dPreOrderTraverse(BiTree T) //使用递归先序遍历二叉树
{
if(T)
{
cout<<T->data<<" ";
dPreOrderTraverse(T->lchild);
dPreOrderTraverse(T->rchild);
}
}
void fPreOrderTraverse(BiTree T)
{ SqStack q;
InitStack(q);
push(q,T);
BiTree p;
while(!StackEmpty(q))
{
while(Gettop(q,p)&&p)
{ cout<<p->data<<" ";
push(q,p->lchild);
}
pop(q,p);
if(!StackEmpty(q))
{
pop(q,p);

push(q,p->rchild);
}
}
printf("\n");
}
CCCCCCCCCCCCCCC 2010-03-22
  • 打赏
  • 举报
回复
这样的程序真的很多,网上、书上...,实在懒得码代码
cy330206 2010-03-22
  • 打赏
  • 举报
回复
想要程序,,,,网上搜搜很多的。。。。
维博 2010-03-22
  • 打赏
  • 举报
回复
怎么没人回答啊,分少了吗,小弟我很穷。。。多谢啦

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧