| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 945 人关注过本帖
标题:刚刚接触数据结构(C),遇到问题(二叉树)无从下手,还请各位兄长指教。
只看楼主 加入收藏
darlingxixi
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2007-11-4
收藏
 问题点数:0 回复次数:0 
刚刚接触数据结构(C),遇到问题(二叉树)无从下手,还请各位兄长指教。
问题描述:已知二叉树t,分别采用顺序存储结构、二叉链表存储结构实现求二叉树的深度,并对二叉树分别进行中序遍历。
要求:
1、二叉树分别采用顺序或二叉链表存储。
2、树中的数据类型约定为整型
3、按先序序列创建二叉树t,用递归算法求二叉树的深度,并对二叉树分别进行前序、中序、后序遍历。
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define MAX 50
#define NULL 0

typedef struct BNode{
    int data;
    struct BNode *lchild;
    struct BNode *rchild;
}BNode;//,*BiTree;
typedef BNode *BiTree;

//插入新结点
int InsertNode(BiTree *T,int e){
    BNode *f,*p;
    p=*T;
    while(p){
        f=p;
        if(p->data==e) return 0;
        else if(e<p->data) p=p->lchild;
        else p=p->rchild;
    }
    p=(BiTree)malloc(sizeof(BNode));
    p->data=e;
    p->lchild=NULL;
    p->rchild=NULL;
    if(*T==NULL) *T=p;
    else if(e<f->data) f->lchild=p;
    else f->rchild=p;
    return 1;
}

//二叉排序树的创建
BiTree Creat(BiTree T){
    //BiTree T=NULL;
    int e;
    T=NULL;
    scanf("%d",&e);
    while(e!='#'){
        InsertNode(&T,e);
        scanf("%d",&e);
    }
    return T;
}

//二叉树深度
int depth(BiTree *T)
{
    int dep1,dep2;
    if (T==NULL)
        return(0);
    else
    {
        dep1=depth(T->lchild);
        dep2=depth(T->rchild);
        if (dep1>dep2)
            return(dep1+1);
        else
            return(dep2+1);
    }
}

//前序遍历二叉树
int ProTree(BiTree T){
    BiTree p=T;
    if(p){
    printf("%d",p->data);
    ProTree(p->lchild);
    ProTree(p->rchild);
    return 1;
    }
}

//中序遍历二叉树
int MidTree(BiTree T){
    BiTree p=T;
    if(p==NULL) return 0;
    MidTree(p->lchild);
    printf("%d",p->data);
    MidTree(p->rchild);
    return 1;
}
//后序遍历二叉树
int PosTree(BiTree T){
    BiTree p=T;
    if(p!=NULL){
        PosTree(p->lchild);
        PosTree(p->rchild);
        printf("%d",p->data);
        return 1;
    }
}

void main(){
    BiTree T;
    Creat(T);
    ProTree(T);
    MidTree(T);
    PosTree(T);
}

劳烦大家修改阿~

[[italic] 本帖最后由 darlingxixi 于 2007-12-15 12:00 编辑 [/italic]]
搜索更多相关主题的帖子: 二叉树 数据结构 兄长 无从下手 指教 
2007-12-15 11:05
快速回复:刚刚接触数据结构(C),遇到问题(二叉树)无从下手,还请各位兄长指 ...
数据加载中...
 
   



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

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