| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 551 人关注过本帖, 1 人收藏
标题:二叉树的基本操作和应用的问题
只看楼主 加入收藏
坚强的螺丝
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-3-13
结帖率:66.67%
收藏(1)
已结贴  问题点数:10 回复次数:2 
二叉树的基本操作和应用的问题
题目1:建立任意二叉树的二叉链表存储,并对其进行先序、中序、后序遍历。
要求:采用二叉链表作为存储结构,以加入虚结点的先序序列输入该二叉树,并设置选单,依据选单项分别输出该二叉树的先序、中序、后序序列。二叉树子结点的数据域可采用字符类型。
测试数据:建立如图所示的二叉树,建立时的输入序列为:ABD000CE00F00
程序代码:
#include<stdio.h>
#include<malloc.h>

typedef struct node
{
    char data;
    struct node * LChild;
    struct node * RChild;
}biTnode,*biTree;

void preorder(biTree root)
{
    if(root!=NULL)
    {
        printf("%c",root->data);
        preorder(root->LChild);
        preorder(root->RChild);
    }
}

void inorder(biTree root)
{
    if(root!=NULL)
    {
        inorder(root->LChild);
        printf("%c",root->data);
        inorder(root->RChild);
    }
}

void postorder(biTree root)
{
    if(root!=NULL)
    {
        postorder(root->LChild);
        postorder(root->RChild);
        printf("%c",root->data);
    }
}

void GreatebiTree(biTree * bt)
{
    char ch;
    ch = getchar();
    if(ch == '#')
        *bt = NULL;
    else
    {
        *bt = (biTree)malloc(sizeof(biTnode));
        (*bt)->data = ch;
        GreatebiTree(&((*bt)->LChild));
        GreatebiTree(&((*bt)->RChild));
    }
}

int main()
{
    biTnode * bt;
    int num;
    printf("please enter this tree:\n");
    GreatebiTree(&bt);
    printf("┌────────────────────┐\n");
    printf("│   please choose one input the tree:    │\n");
    printf("│         1.preorder                     │\n");
    printf("│         2.inorder                      │\n");
    printf("│         3.postorder                    │\n");
    printf("└────────────────────┘\n");
    scanf("%d",&num);
    switch(num)
    {
        case 1:
            preorder(bt);
        case 2:
            inorder(bt);
        case 3:
            postorder(bt);
        default:
            break;
    }
    return 0;
}


编译也没有错,就是结果出不来,求教。

搜索更多相关主题的帖子: 二叉树 如图所示 color 
2014-10-22 09:39
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:10 

程序代码:
void GreatebiTree(biTree *bt)
{
    char ch;
    ch = getchar();
    if(ch == '0')     // 与输入有关
        *bt = NULL;
    else
    {
        *bt = (biTree)malloc(sizeof(biTnode));
        (*bt)->data = ch;
        GreatebiTree(&((*bt)->LChild));
        GreatebiTree(&((*bt)->RChild));
    }
}



   
程序代码:
 // switch 要加 break
    switch (num)
    {
    case 1:
        preorder(bt);
        break;
    case 2:
        inorder(bt);
        break;
    case 3:
        postorder(bt);
        break;
    default:
        break;
    }


[fly]存在即是合理[/fly]
2014-10-22 11:01
坚强的螺丝
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-3-13
收藏
得分:0 
回复 2 楼 azzbcc
谢谢哈!!
2014-10-22 12:18
快速回复:二叉树的基本操作和应用的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023147 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved