m0_61059872 2022-05-07 22:45 采纳率: 66.7%
浏览 68
已结题

有关二叉树非递归遍历,代码编译没有错误但运行没有结果,请帮看一下

谢谢
想要输入:1 2 4 0 5 0 3 6 0
结果:1 2 4 5 3 6

#include"stdio.h"
#include"malloc.h"
#define MAX_NODE 100
#define EXPANSIONFLAG 0
typedef struct node
{
int data;
struct node *Lchild;
struct node *Rchild;
}BiTree;
BiTree *creat_preorder();
void  PreorderTraverse( BiTree  *T);
void  InorderTraverse( BiTree *t );
int main()
{
    BiTree *T;
    BiTree *creat_preorder(T);
    PreorderTraverse(T);
    return 0;
}
BiTree *creat_preorder()
{
BiTree *T, *s, *p, *stack[MAX_NODE];
int x;
int top = 0;
int flag = 0; 
scanf( "%d",&x );
if( x == EXPANSIONFLAG )
{
T = NULL;
return T;
}
T = ( struct node * )malloc( sizeof(BiTree) );
T->data   = x;
T->Lchild = NULL;
T->Rchild = NULL;
p = T;
while( 1 )
{
scanf( "%d",&x );
if( x != EXPANSIONFLAG ) 
{
s = ( struct node * )malloc( sizeof(BiTree) );
s->data   = x;
s->Lchild = NULL;
s->Rchild = NULL;
if( flag == 1 ) 
{
p->Rchild = s;
flag = 0;
}
else 
{
p->Lchild = s;
stack[ top++ ] = p;
}
p = s;
}
else 
{
scanf( "%d",&x );
if( x != EXPANSIONFLAG ) 
{
s = ( struct node * )malloc( sizeof(BiTree) );
s->data   = x;
s->Lchild = NULL;
s->Rchild = NULL;
p->Rchild = s;
p = s;
    }
    else 
    {
     if( top > 0 )
     {
     p = stack[ --top ];
     flag = 1;
}
else 
break;
}
}
}
return( T );
}
void  PreorderTraverse( BiTree  *T)
{
    BiTree  *Stack[MAX_NODE] , *p,  *q;
int top=0 ;
p = T;
if( T==NULL )
    {
printf( "Binary Tree is Empty!\n");
return;
}
while (p!=NULL)  
{
printf( "%d,", p->data );
q = p->Rchild; 
if( q != NULL )  
Stack[++top] = q;
p = p->Lchild; 
if( p == NULL && top > 0 ) 
p = Stack[top--];  
}
}

  • 写回答

1条回答 默认 最新

  • fuill 2022-05-08 06:46
    关注

    main里BiTree *creat_preorder(T);这样写变成函数声明了,没有执行该函数

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月8日
  • 已采纳回答 5月8日
  • 赞助了问题酬金5元 5月7日
  • 创建了问题 5月7日

悬赏问题

  • ¥15 wegame打不开英雄联盟
  • ¥15 公司的电脑,win10系统自带远程协助,访问家里个人电脑,提示出现内部错误,各种常规的设置都已经尝试,感觉公司对此功能进行了限制(我们是集团公司)
  • ¥15 救!ENVI5.6深度学习初始化模型报错怎么办?
  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多