二叉树的顺序实现

来源:互联网 发布:mac office 卸载 编辑:程序博客网 时间:2024/06/05 20:02
//完全二叉树最适合用顺序存储实现,其他二叉树也可以,但要做标记,标记某处有没有节点#include <stdio.h>#include <stdlib.h>#define MAXN 100int tree[MAXN+1];int book[MAXN+1];int main(){    memset(book,0,sizeof(book));    for(int i=1;i<=10;i++){        int nodenumber;        int data;        scanf("%d%d",&nodenumber,&data);        tree[nodenumber]=data;        book[nodenumber]=1;    }    for(int i=1;i<=10;i++){        int searchnode;//输出searchnode的值和其两个儿子的值        scanf("%d ",&searchnode);        if(2*searchnode<=MAXN&&book[2*searchnode])            printf("%d ",tree[2*searchnode]);        if(2*searchnode+1<=MAXN&&book[2*searchnode+1])            printf("%d ",tree[2*searchnode+1]);    }    return 0;}

数字代表节点编号

1 0