二叉树的二叉链表存储结构上得基本操作

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、二叉树的二叉链表存储结构

typedef struct btnode{

elemtype data;

struct btnode *lchild,*rchild;

}bitnode,*bitree;

二、基本操作的算法实现

1.建立二叉树

#define maxnum 20

void creat(bitnode *t){

bitnode *p[maxnum+1],*s;

int i,j,; char ch;

scanf(“%d,%c”,&i,&ch);

while(i!=0&&ch!=’#’){

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

s->data=ch; s->lchild=s->rchild=NULL; p[i]=s;

if(i==1) t=s;

else{

j=i/2;

if(i%2==0) p[j]->lchild=s;

else p[j]->rchild=s;}

scanf(“%d,%c”,&i,&ch); } }

2.先序遍历

void preorder(bitnode *t){ if(t){ printf(t->data);

preorder(t->lchild);

preorder(t->rchild);}

}

3.中序遍历

void inorder(bitnode *t){ if(t){ inorder(t->lchild);

printf(t->data);

inorder(t->rchild);}

}

4.后序遍历

void posrorder(bitnode *t){ if (t){ postorder(t->lchild);

postorder(t->rchild);

printf(t->data);}

}

相关文档
最新文档