永发信息网

建立二叉链表并先序 中序 后序的c程序

答案:1  悬赏:20  手机版
解决时间 2021-04-22 19:15
数据结构
最佳答案
#include <stdio.h>
#include <stdlib.h>

typedef struct _btree {
int v;
struct _btree* l;
struct _btree* r;
}**btree, *node;


node Insert(btree r, int v)
{
node t, p, n;
t = (node)malloc(sizeof(struct _btree)) ;
t->v = v;
t->l = t->r = NULL;

p = NULL, n = *r;
while(n) {
p = n;
n = v < n->v ? n->l : n->r;
}
if (p) {
if (v < p->v) {
p->l = t;
} else {
p->r = t;
}
} else {
*r = t;
}
return t;
}

node Create(int* beg, int* end)
{
node root;
root = NULL;
while(beg != end)
Insert(&root, *beg++);
return root;
}

void Prevorder(node root)
{
if(root) {
printf("%d ", root->v);
Prevorder(root->l);
Prevorder(root->r);
}
}

void Inorder(node root)
{
if(root) {
Inorder(root->l);
printf("%d ", root->v);
Inorder(root->r);
}
}

void Postorder(node root)
{
if(root) {
printf("%d ", root->v);
Postorder(root->r);
Postorder(root->l);
}
}

void Destruct(node root)
{
if(root) {
Destruct(root->l);
Destruct(root->r);
free(root);
}
}

int main()
{
int a[] = { 6,1,3,5,4,2 };
node root;
root = Create(a, a + 6);
Prevorder(root);
putchar('\n');
Inorder(root);
putchar('\n');
Postorder(root);
putchar('\n');
Destruct(root);
getchar();
return 0;
}

附图:

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
女生最讨厌什么样的男生?
药房连锁公司会计需要做什么
猪猪如何样啊,应该先学习什么课程,打工元宝
游戏王目录急求
野营都需要带什么东西?
联华泥城店这个地址在什么地方,我要处理点事
雅阁车没用钥匙上的按钮开,为什么有警报?怎
蓉城是哪啊
你是是双子座女生?你是白羊座男生?是的请回
好人坏人怎么区分啊
加密软件无法解密
梦幻诛仙怎么样才能快速升级
dnf漫游20~30武器都什么?(紫粉件)
都市繁华夜景的句子,描写城市夜景的段落
白发三千丈(打一足球明星)
推荐资讯
求几首好听的,煽情的,有节奏感的歌~
现在配个主机多少钱?
中国飞埃及多少时间,中国辽宁到埃及相距多少
瘦的人有什么方法能让自己变胖?
感恩你陪伴的句子,经常会左边或者右边的小肚
幼儿园奖状评语如:聪明伶俐、活泼可爱的、..
怎样做才能让爱情和友情并存?!
现在武林卡梦境小猪几点几能用?
昨天刚装的windows7怎么没有声音?
坐公交车的时候坐哪个位置最好?为什么?
现在哪个网站上找工作的人最多?? 最安全?
对父母的新年祝福语,求祝福别人早日找到老婆
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?