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 用verilog实现tanh函数和softplus函数
  • ¥15 求京东批量付款能替代天诚
  • ¥15 slaris 系统断电后,重新开机后一直自动重启
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题
  • ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含