永发信息网

数据结构(C语言描述)

答案:2  悬赏:30  手机版
解决时间 2021-04-05 15:54
数据结构(C语言描述)
最佳答案
#include 
#include 
#include 
#define DataType int
#define MAXSIZE 1000
typedef struct node{
    DataType data;
    struct node *lchild;
    struct node *rchild;
}BiTreeNode;
DataType BT[MAXSIZE];
BiTreeNode* BuildBTree(DataType BT[], int n, int i)
{
    BiTreeNode * node;
    if(i>=n || (node=(BiTreeNode*)malloc(sizeof(BiTreeNode)))==NULL) return NULL;
    node->data = BT[i];
    node->lchild =  BuildBTree(BT, n, 2*i+1);
    node->rchild =  BuildBTree(BT, n, 2*i+2);
    return node;
}
void PrintLevel(BiTreeNode * bt, int level, int l)
{
    if(!bt) return;
    if(l < level)
        PrintLevel(bt->lchild, level,l+1);
    if(l == level)
        printf("%4d",bt->data);
    if(l < level)
        PrintLevel(bt->rchild, level,l+1);    
}


void PrintTree(BiTreeNode *bt,char pre,char sur,int depth,int level){
    if(bt==NULL) return ; 
    int i=0;  
    while(++i    printf("%4d",bt->data);                // 输出当前节点
    while(i++    printf("
");
    
    PrintTree(bt->lchild,pre,sur,depth,level+1);
    PrintTree(bt->rchild,pre,sur,depth,level+1);
}
void CTBT(int n)
{   // 建立初始n个节点的完全二叉树
    while(n--) BT[n] = n;
}
int main()
{
    int i,n,depth;
    BiTreeNode *bt;
    scanf("%d",&n);
    CTBT(n);
    bt = BuildBTree(BT, n, 0);
    depth = (int)(log(n)/log(2))+1;
    i=0;
    while(++i<=depth)
    {
  printf("
The %dth Level:",i);
        PrintLevel(bt, i,1);
    }
 printf("
");
    PrintTree(bt,' ','-',depth,1);
 return 0;
}经调试这个没问题,完成了要求的三个功能

全部回答
这个我会,可以帮你写!追问那请你写一写
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
狮子座的座右铭是什么,狮子座的座右铭是什么
Helping others is easier than you think. Y
iphone7进水了怎么办的最新相关信息
跟老女人做A比较爽还是手Y比较爽
帮忙翻译成英语 一句话 在线等 我现在很无奈
QQ截图的前一张截图怎么找 求回答 急
搞笑的早上祝福语,答谢早上好的经典幽默词句
绵竹城东剑桥城小区有没有电梯入户的房l型?
单选题Hesaidfriendship________moreimp
描写赞美辛勤园丁的古诗句。要十句,是作业。
为什么我投篮使不上劲啊?正规姿势。每次投出
宜昌哪里可以买到正品低价的手机?
李易峰和郑爽合作好不好?
螺母的内径和外径分别是小径和大径吗?螺栓与
为什么女人在床上那么听话
推荐资讯
我是2006年10月3日出生的请问我是什么星座
单选题______,hedoesgetannoyedwithhersom
奥运会的精神是什么?
掌声300字作文
算一算.
理科生如何用含蓄的言语表达喜欢
钱包拉链坏了怎么办?
别人有我的信用卡号,能直接把我的钱划走吗
沈阳哪有卖二手鳄鱼剪子的,一米剪口的,液压
笔记本电脑型号在哪看,如何查询笔记本电脑型
腰椎轻度侧弯
如何把foxMail设为系统默认邮箱
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?