b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

二叉排序树 建立(2)

电脑杂谈  发布时间:2017-01-10 12:02:18  来源:网络整理

{

int data;

struct tnode *lchild,*rchild;

}TNODE;

3.算法设计

在进行算法设计时,应将题目分为两部分,排序二叉树的建立,排序二叉树的遍历。

3.1 定义结点

typedef struct tnode /*建立节点*/

{

int data;

struct tnode *lchild,*rchild;

}TNODE;

TNODE *q; /*构造指针变量*/

TNODE *bt;

3.2 插入结点函数insert()

Void insert(TNODE **b,TNODE *s)

/*排序二叉树中插入节点*/

{

if((*b)==NULL)(*b)=s;

else if(s->data==(*b)->data) return;

else if(s->data<(*b)->data) insert((&(*b)->lchild),s);

else if(s->data>(*b)->data) insert((&(*b)->rchild),s);

}

3.3 创建树函数creat()

void creat(TNODE *b) /*建立排序二叉树*/

{

int x;

TNODE *s;

b=NULL; /*初始化二叉数*/ scanf("%d",&x);

s=(TNODE *)malloc(sizeof(TNODE));

q=s; /*将根结点指针地址赋值给q*/

while(x!=-1) /*反复读入节点,直至-1结束*/

{

s->data=x;

s->lchild=NULL;

s->rchild=NULL;

insert(&bt,s);

scanf("%d",&x); /*节点插入排序二叉树中*/ s=(TNODE *)malloc(sizeof(TNODE));

n=n+1;

}

}

3.4 求排序二叉树的深度

int deep(TNODE *t) /*求排序二叉树的深度 */

{

int rd;

int ld;

if(!t) return 0;

else { ld=deep(t->lchild);

rd=deep(t->rchild);


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-25366-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...