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

  • 相关阅读:
    19-background
    18-超链接导航栏案例
    17-文本属性和字体属性
    16-margin的用法
    15-浮动
    14-块级元素和行内元素
    13-标准文档流
    12-简单认识下margin
    11-border(边框)
    10-padding(内边距)
  • 原文地址:https://www.cnblogs.com/yym2013/p/3742660.html
Copyright © 2011-2022 走看看