首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

c语言排序树的有关问题

2013-12-15 
c语言排序树的问题下面的代码调试的时候总是出错,是我的数据结构作业题,几乎没怎么用过c语言,求指导~#incl

c语言排序树的问题
下面的代码调试的时候总是出错,是我的数据结构作业题,几乎没怎么用过c语言,求指导~

#include<stdio.h>
#include<malloc.h>
#define M 50

typedef struct node{
int data;
struct node *lchild, *rchild;
}BTNode, *BTREE;

void insert_bst(BTREE t, int item){//递归构造二叉排序树
if(t==NULL){
t = (BTREE)malloc(sizeof(BTNode));
t->data = item;
t->lchild = NULL;
t->rchild = NULL;
}
else if(item<t->data)
insert_bst(t->lchild, item);
else
insert_bst(t->rchild, item);
}

void in_order(BTREE t){
printf("%d",t->data);
BTREE stack[M], p=t;
int top = -1;
if(t!=NULL)
do{
while(p!=NULL){
stack[++top] = p;
p = p->lchild;
}

p = stack[top--];
printf("%d ",p->data);
p = p->rchild;
}while(!(p==NULL&&top==-1));
}

void main(){
int item;
BTREE t=NULL;//不声明为NULL会随机分配值产生异常
while(1){
scanf("%d", &item);
printf("%d", item);
if(item!=-1)
insert_bst(t, item);
else
break;
}
in_order(t);
}

[解决办法]
void insert_bst(BTREE t, int item){//递归构造二叉排序树
这是传值,不行
C语言传指针:
void insert_bst(BTREE* pt, int item){//递归构造二叉排序树

热点排行