zoukankan      html  css  js  c++  java
  • 数据结构实验8

    题目:一棵完全二叉树以顺序方式存储,设计一个递归算法,对该完全二叉树进行中序遍历。

    test.h

    #include<stdio.h>
    #include<malloc.h>
    #include<string.h>
    #define MAXSIZE 100
    typedef struct FullBiTree
    {
        char node[MAXSIZE];
        int n;
    }FullBiTree;
    
    FullBiTree *Init_Tree()
    {
       FullBiTree *T;
       T=(FullBiTree *)malloc(sizeof(FullBiTree));
       if(T!=NULL)
       {
           T->n=0;
       }
       return T;
    }
    
    void Set_Tree(FullBiTree *T,char *ch,int i)
    {
        char c;
        int j;
        if(T->n>=MAXSIZE-1)
        {
            return;
        }
        for(j =0;j<i;j++)
        {
            c=ch[j];
            T->n++;
            T->node[T->n] = c;
        }
        return;
    }
    
    void seqInOrder(FullBiTree *T,int i)
    {
        if(i==0) //递归调用的结束条件
            return;
        else
        {
            if(2*i<=T->n)
                seqInOrder(T,2*i);//中序遍历 i 的左子树
            else
                seqInOrder(T,0);
            printf("%2c",T->node[i]);//输出根结点
            if(2*i+1<=T->n)
                seqInOrder(T,2*i+1);//中序遍历 i 的右子树
            else
                seqInOrder(T,0);
        }
    }

    test.c

    #include"test.h"
    
    int main()
    {
        int num;
        char *p;
        FullBiTree *T;
        T = Init_Tree();
        p = (char *)malloc(sizeof(char));
        printf("请输入每个结点:
    ");
        gets(p);
        num = strlen(p);
        printf("结点:%d
    ",num);
        Set_Tree(T,p,num);
        printf("中序遍历:
    ");
        seqInOrder(T,1);
        printf("
    ");
        return 0;
    }
  • 相关阅读:
    JAVA 基本数据类型长度
    字符编码详解
    几种编码方式
    Java1.5泛型指南中文版(Java1.5 Generic Tutorial)
    java泛型小问题
    java中的equals()方法
    Java泛型中E、T、K、V等的含义
    数据库的基本操作
    Mysql数据类型简介(大概了解)
    [BZOJ 2007] 海拔
  • 原文地址:https://www.cnblogs.com/wuyibb/p/6994659.html
Copyright © 2011-2022 走看看