帮我看一下非递归遍历二叉数的算法

hanzq 2004-05-07 08:04:47
struct btnode
{ char data;
struct btnode * lchild;
struct btonde * rchild;
};
struct node
{ struct btnode *addr;
struct node *link;
};
inorder(root)
struct btnode * root;
{
struct node *top,*p;
top=NULL;
while(root!=NULL||top!=NULL)
{
while(root!=NULL)
{
struct node * p=(struct node *)malloc(sizeof(struct node));
p->addr=root;
p->link=top;
top=p;
root=root->lchild;
}
if(top!=NULL)
{
root=top->addr;
printf("%c",root->data);
p=top;
top=top->link;
free(p);
root=root->rchild;
}
}return;
}
这段代码编译出错 :“undefimed structure 'btonde' in function inorder”
其他没有语法错误

怎么改?
...全文
75 5 点赞 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hewittlee 2004-05-08
struct btonde * rchild; //小心点
  • 打赏
  • 举报
回复
junnyfeng 2004-05-07
struct btnode
{ char data;
struct btnode * lchild;
struct btonde * rchild; //这里btnode写错了
};
后面的最好也检查一下
  • 打赏
  • 举报
回复
cngdzhang 2004-05-07

#include <stdio.h>
#include <stdlib.h>

struct btnode
{ char data;
struct btnode * lchild;
struct btnode * rchild;
};
struct node
{ struct btnode *addr;
struct node *link;
};

void inorder(struct btnode *root)
{
struct node *top,*p;
top=NULL;
while(root!=NULL||top!=NULL)
{
while(root!=NULL)
{
struct node * p=(struct node *)malloc(sizeof(struct node));
p->addr=root;
p->link=top;
top=p;
root=root->lchild;
}
if(top!=NULL)
{
root=top->addr;
printf("%c",root->data);
p=top;
top=top->link;
free(p);
root=root->rchild;
}
}return;
}

void main()
{
}
  • 打赏
  • 举报
回复
zhouqingyuan 2004-05-07
自己看编译信息!!!
  • 打赏
  • 举报
回复
freefalcon 2004-05-07
粗心,写错了

struct btnode
{ char data;
struct btnode * lchild;
struct btnode * rchild; //btnode
};
  • 打赏
  • 举报
回复
相关推荐
发帖
C语言
加入

6.5w+

社区成员

C语言相关问题讨论
申请成为版主
帖子事件
创建了帖子
2004-05-07 08:04
社区公告
暂无公告