数据结构课程设计 二叉排序树的实现 追加150分

2025-03-01 11:48:06
推荐回答(2个)
回答1:

#include "stdio.h"
#include "string.h"
#define max 7
#define null 0
typedef struct node
{
char data[7];
struct node *lchild,*rchild;
}btree;
btree *q[max];
btree *creatbtree();
ceng(btree *bt);
main()
{
btree *head;
head=creatbtree();
ceng(head);
}
btree *creatbtree()
{
char ch1[7];
int front,rear;
btree *root,*s;
front=1,rear=0;
root=null;
printf("shu ru Data,Empty place input @,the end is #\n");
scanf("%s",ch1);
while(strcmp(ch1,"#"))
{
s=null;
if(strcmp(ch1,"@"))
{
s=(btree*)malloc(sizeof(btree));
strcpy(s->data,ch1);
s->lchild=null;
s->rchild=null;
}
rear++;
q[rear]=s;
if(rear==1)
root=s;
else
{
if(q[front]&&s)
if(rear%2==0)
q[front]->lchild=s;
else
{
q[front]->rchild=s;
front++;
}
}
scanf("%s",ch1);
}
return root;
}
ceng(btree *bt)
{
int front=0,rear=0;
if(bt!=null)
{
rear++;
q[rear]=bt;
}
while(front!=rear)
{
front++;
bt=q[front];
printf("%s,",bt->data);
if(bt->lchild!=null)
{
rear++;
q[rear]=bt->lchild;
}
if(bt->rchild!=null)
{
rear++;
q[rear]=bt->rchild;
}
}
}

回答2:

拿本书看看吧,,上面都有