急求:怎么在以下的二叉树存储到一个文件夹中 并读取 谢谢你

二叉树有关问题,求帮助.谢谢
&来源:读书人网&【读书人网():综合教育门户网站】
二叉树问题,求帮助......多谢!今天写了一个二叉树的一些基本算法。有层次建立,先根建立,中根建立,后根建立,
二叉树问题,求帮助......多谢!今天写了一个二叉树的一些基本算法。有层次建立,先根建立,中根建立,后根建立,先序和中序建立,后序和中序建立;先根遍历,中根遍历,后根遍历,层次遍历,非递归的先根遍历,非递归根预入栈处理的先根遍历1,非递归根预入栈处理的先根遍历2,非递归的中根遍历,非递归的后根遍历,求叶子数,求节点数,求二叉树中度为1的节点总数,求二叉树中度为2的节点总数,求二叉树的高度等等。 &
但是我写到用层次遍历输出二叉树时候,出现了问题。编译时没问题,但运行时,用层次遍历输出,输出结果不对。搞了很久,没搞出来,毕竟水平有限(现在大二)。现在很纠结,不搞出来,晚上睡觉都不爽。现在这时候,也问不到老师了,星期六嘛。 &
所以发个帖,希望大家帮帮我,小弟在此先谢谢啦!帖出程序的一部分,也就是出错的那一部分。#include &iostream&const int maxsize=100;ttypedef struct node *struct node& {pointer lchild,};tytypedef struct{datatype data[maxsize+1];int front,}//////////////////////////////////////////////////bitree PreCreat()
//先根序列建立二叉树{cin&&if(ch=='@') return NULL;t=t-&data=t-&lchild=PreCreat();t-&rchild=PreCreat();}/////////////////////////////////////////////////////void init_sqqueue(sqqueue &Q)
//循环队列初始化{Q.front=Q.rear=0;}int empty_sqqueue(sqqueue &Q)
//循环队列空判断{if(Q.rear==Q.front) return 1;else return 0;}void en_sqqueue(sqqueue &Q,pointer p)
//入队{if(((Q.rear+1)%maxsize)==Q.front){ cout&&&队满,不能入队!\n&&&}else{ Q.rear=(Q.rear+1)% Q.data[Q.rear]=p-&}}node *de_sqqueue(sqqueue &Q)
//出队,返回原对头指针{if(Q.rear==Q.front){ cout&&&队空,不能出队\n&; return NULL;}else{ Q.front=(Q.front+1)% p-&data=Q.data[Q.front];}}void Levelorder(bitree t)
//层次遍历{sqqueue Q;
//循环队列if(NULL==t)init_sqqueue(Q);en_sqqueue(Q,t);
//根结点入队while(!empty_sqqueue(Q))
//队列非空{ cout&&de_sqqueue(Q)-& if(p-&lchild!=NULL) en_sqqueue(Q,p-&lchild); if(p-&rchild!=NULL) en_sqqueue(Q,p-&rchild);& }}/////////////////////////////////////////////////////int main(){cout&&&按先根序列建立二叉树,用@表示虚结点,&&&t=PreCreat();Levelorder(t);cout&&return 0;}[解决办法]要学会提问,首先格式化一下代码,给出测试用例。帮你改了一下:队列中应该存储二叉树结点指针。C/C++ code#include &iostream&const int maxsize=100;ttypedef struct node *struct node
pointer lchild,};tytypedef struct{
pointer data[maxsize+1];
int front,}//////////////////////////////////////////////////bitree PreCreat() //先根序列建立二叉树{
if(ch=='@') return NULL;
t-&lchild=PreCreat();
t-&rchild=PreCreat();}/////////////////////////////////////////////////////void init_sqqueue(sqqueue &Q) //循环队列初始化{
Q.front=Q.rear=0;}int empty_sqqueue(sqqueue &Q) //循环队列空判断{
if(Q.rear==Q.front) return 1;
else return 0;}void en_sqqueue(sqqueue &Q,pointer p) //入队{
if(((Q.rear+1)%maxsize)==Q.front)
cout&&&队满,不能入队!\n&&&
// 顺序反了!
Q.data[Q.rear]=p;
Q.rear=(Q.rear+1)%
}}node *de_sqqueue(sqqueue &Q) //出队,返回原对头指针{
if(Q.rear==Q.front)
cout&&&队空,不能出队\n&;
return NULL;
p=Q.data[Q.front];
Q.front=(Q.front+1)%
}}void Levelorder(bitree t) //层次遍历{
sqqueue Q; //循环队列
if(NULL==t)
init_sqqueue(Q);
en_sqqueue(Q,t); //根结点入队
while(!empty_sqqueue(Q)) //队列非空
p = de_sqqueue(Q);
cout && p-&data &&
if(p-&lchild!=NULL) en_sqqueue(Q,p-&lchild);
if(p-&rchild!=NULL) en_sqqueue(Q,p-&rchild);
}}/////////////////////////////////////////////////////// abd@@@c@@int main(){
cout&&&按先根序列建立二叉树,用@表示虚结点,&&&
t=PreCreat();
Levelorder(t);
system(&PAUSE&);
return 0;}/*按先根序列建立二叉树,用@表示虚结点,abd@@@c@@abcd*/一道数据结构题,关于二叉树的,第二题,求过程,谢谢-中国学网-中国IT综合门户网站-提供健康,养生,留学,移民,创业,汽车等信息
> 信息中心 >
一道数据结构题,关于二叉树的,第二题,求过程,谢谢
来源:互联网 发表时间: 23:08:00 责任编辑:鲁晓倩字体:
为了帮助网友解决“一道数据结构题,关于二叉树的,第二题,求过程,谢谢”相关的问题,中国学网通过互联网对“一道数据结构题,关于二叉树的,第二题,求过程,谢谢”相关的解决方案进行了整理,用户详细问题包括:RT,我想知道:一道数据结构题,关于二叉树的,第二题,求过程,谢谢,具体解决方案如下:解决方案1:
左子女结点的编号是2i。右子女结点的编号是2i+1(如果有的话),这是用数组存储二叉树的基本特点。
相关文章:
最新添加资讯
24小时热门资讯
Copyright © 2004- All Rights Reserved. 中国学网 版权所有
京ICP备号-1 京公网安备02号计算机软件与基础作业二叉树----------------急!!!!急!!!! 万分感谢_百度知道【图文】二叉树的基本知识_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
二叉树的基本知识
上传于||文档简介
&&二​叉​树
大小:1.03MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢}

我要回帖

更多关于 谢谢图片 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信