zoukankan      html  css  js  c++  java
  • 《数据结构教程》(李春葆 主编)课后习题【练习题7】

    【7.4】

     1 #include <iostream>
     2 #include <stdio.h>
     3 #include <stdlib.h>
     4 using namespace std;
     5 #define MAXN 100
     6 
     7 typedef struct node{
     8     char data;
     9     node *lchild;
    10     node *rchild;
    11 } BTNode,*LinkBTNode;
    12 LinkBTNode BuildBTree(char a[],int d)    //构造二叉树
    13 {
    14     if(a[d]==0)
    15         return NULL;
    16     LinkBTNode bt = (LinkBTNode)malloc(sizeof(BTNode));
    17     bt->data = a[d];          
    18     bt->lchild = BuildBTree(a,d<<1);
    19     bt->rchild = BuildBTree(a,d<<1|1);
    20     return bt;
    21 }
    22 void DispBTNode(LinkBTNode b)    //以括号表示法输出二叉树
    23 {
    24     if(b!=NULL){
    25         cout<<b->data;
    26         if(b->lchild!=NULL||b->rchild!=NULL){
    27             cout<<"(";
    28             DispBTNode(b->lchild);
    29             if(b->rchild!=NULL)
    30                 cout<<',';
    31             DispBTNode(b->rchild);
    32             cout<<')';
    33         }
    34     }
    35 }
    36 int main()
    37 {
    38     int i,n;
    39     while(cin>>n){
    40         if(n==0) break;
    41         getchar();
    42         char a[MAXN*3+1] = {0};
    43         for(i=1;i<=n;i++)    //依次输入完全二叉树的节点
    44             cin>>a[i];
    45         LinkBTNode bt = BuildBTree(a,1);   //用二叉链创建二叉树
    46         DispBTNode(bt);
    47         cout<<endl;
    48     }
    49     return 0;
    50 }

    Freecode : www.cnblogs.com/yym2013

  • 相关阅读:
    [转]Putty中文乱码解决方法
    linux内核编译
    grub2的使用
    linux的简单网络配置
    [转]建立swap分区
    [转]ps/2键盘线序识别方法
    Linux下备份系统至另一硬盘
    [转]Vimium快捷键
    [转] C中的位域
    [转]diskpart命令
  • 原文地址:https://www.cnblogs.com/yym2013/p/3742660.html
Copyright © 2011-2022 走看看