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 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥15 小红薯封设备能解决的来
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助
  • ¥15 STM32控制MAX7219问题求解答
  • ¥20 在本地部署CHATRWKV时遇到了AttributeError: 'str' object has no attribute 'requires_grad'
  • ¥15 vue+element项目中多tag时,切换Tab时iframe套第三方html页面需要实现不刷新
  • ¥50 深度强化学习解决能源调度问题
  • ¥15 一道计算机组成原理问题