{
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
高铁坐吗
这么好的军舰不没收太可惜了
改是用国货自豪的时候了
一直被模仿从未被超越