标题:二叉树的作业 作业 求大神帮忙修改代码啊!!!
取消只看楼主
mz_zml
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-3-16
结帖率:0
已结贴  问题点数:2 回复次数:2 
二叉树的作业 作业 求大神帮忙修改代码啊!!!
实验内容
1.创建二叉树;
2.实现二叉树的水平输出算法;
3.完成对二叉树进行深度和叶子数目统计的算法;
4.完成对二叉树的中序遍历输出算法。

(注意 这不是什么课程设计 也不是专业什么的。。。是选修 选修啊啊啊 复习大军杀到  选修作业提交紧逼  大神。大神在哪里~~~  求解啊  考完了再补上 啊啊啊)

[ 本帖最后由 mz_zml 于 2013-6-29 09:47 编辑 ]
搜索更多相关主题的帖子: 二叉树 课程 统计 叶子 专业 
2013-06-29 01:21
mz_zml
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-3-16
得分:0 
这个代码编译的时候没有错误跟警告,
但运行时输入一串字符串之后按了回车,程序没有任何反应!!
请大神帮忙修改一下,谢谢!!
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
int sum=0,num=1;
typedef struct BIRE
{
    char data;
    struct BIRE *lchild,*rchild;
} BN,*BP;
void PreOrderTraverse(BP M)/*先序*/
{
    if(M!=NULL)
    {
    printf("%c",M->data);
    PreOrderTraverse (M->lchild);
    PreOrderTraverse (M->rchild);
    }
}
BP CreatTree()/*先根节点,然后左(R)最后右(L)创建树*/
{
    char ch;
    BP M;
    scanf("mmm %c",&ch);
    if(ch==' ')
    M=NULL;
    else
    {
    M=(BN *)malloc(sizeof(BN));/*为结点开辟空间*/
    M->data=ch;
    M->lchild=CreatTree();
    M->rchild=CreatTree();
    }
    return (M);
}
void InOrderTraverse(BP M)/*中序*/
{
    if(M!=NULL)
    {
    InOrderTraverse (M->lchild);
    printf("%c",M->data);
    sum=sum+1;
    InOrderTraverse(M->rchild);
    }
}
int Depth(BP M)/* 深度 */
    {
    
    if(M==NULL)
    return(0);
    else
    return 1+(Depth(M->lchild)>Depth(M->rchild)? Depth(M->lchild):Depth(M->rchild));
    }
    
int PostOrderTraverse(BP M)/*后序*/
{
    if(M!=NULL)
    {
    PostOrderTraverse (M->lchild);
    PostOrderTraverse (M->rchild);
    printf("%c",M->data);
    }
    return sum;
}
void PrintBTree(BP root,int level)
{
int i;
    if(root!=NULL)
    {
    PrintBTree(root->rchild,level+1);
    for(i=1; i<=8*level; i++)
    printf(" ");
    printf("-------%c\n",root->data);
    PrintBTree(root->lchild,level+1);
    }
}
int main(void)/*主函数*/
{
    BP M;
    int sm;
    M=CreatTree();
    printf("先序遍历:\n");
    PreOrderTraverse(M);
    printf("\n中序遍历:\n");
    InOrderTraverse (M);
    printf("\n后序遍历:\n");
    PostOrderTraverse (M);
    printf("\n深度为:%d",Depth(M));
    printf("\n");
    sm= PostOrderTraverse (M);
    printf("\n结点总数为:\n%d",sm);
    printf("二叉树水平输出如下:\n");
    PrintBTree(M,1);
    return 0;
}


[ 本帖最后由 mz_zml 于 2013-6-29 09:46 编辑 ]
2013-06-29 09:40
mz_zml
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-3-16
得分:0 
回复 2楼 yuccn
求扩散啊
2013-06-29 17:57



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-416332-1-1.html




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

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