鱼C论坛

 找回密码
 立即注册
查看: 5164|回复: 10

[技术交流] 二叉树的创建及先序遍历中序遍历后序遍历

[复制链接]
发表于 2013-4-25 16:58:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
无标题.png bittree.h
#include <stdio.h>
#include <stdlib.h>
#define OK 1
typedef char TElemType;
typedef int Status;

typedef struct BiTNode{
        TElemType data;
        struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
Status CreatBitTree(BiTree &T)
{
        TElemType ch;
        scanf("%c",&ch);
        if (ch=='#')
                T=NULL;
        else {
                T=(BiTree)malloc(sizeof(BiTNode));
                T->data=ch;
                CreatBitTree(T->lchild);
                CreatBitTree(T->rchild);
        }
        return OK;
}

Status PreOrderTraverse(BiTree T,Status (* Visit)(TElemType e))
{
        if (T)
        {
                Visit(T->data);
                PreOrderTraverse(T->lchild,Visit);
                PreOrderTraverse(T->rchild,Visit);
        }
        return OK;
}

Status InOrderTraverse(BiTree T,Status (* Visit)(TElemType e))
{
        if (T)
        {        
                InOrderTraverse(T->lchild,Visit);
                Visit(T->data);
                InOrderTraverse(T->rchild,Visit);
        }
        return OK;
}

Status PostOrderTraverse(BiTree T,Status (* Visit)(TElemType e))
{
        if (T)
        {
                PostOrderTraverse(T->lchild,Visit);
                PostOrderTraverse(T->rchild,Visit);
                Visit(T->data);
        }
        return OK;
}
Status PrintElem(TElemType e)//输出函数,这样写的目的很简单,如果要输出其他类型只需要修改这个函数即可
{
        printf("%c",e);
        return OK;
}
bittree.cpp
#include<bittree.h>int main()
{
        BiTree tree;
        Status (* Visit)(TElemType e);
        Visit=PrintElem;
        CreatBitTree(tree);
        PreOrderTraverse(tree,Visit);//先序遍历
        printf("\n");
        InOrderTraverse(tree,Visit);//中序遍历
        printf("\n");
        PostOrderTraverse(tree,Visit);//后序遍历
        printf("\n");
        getchar();
        getchar();
        return 0;
}
测试数据:
/*
ABC##DE#G##F###
ABCDEGF
CBEGDFA
CGEFDBA
*/

二叉树的创建和遍历

自己写的,不太喜欢文字,对于看不懂的可以回复,我会第一时间回答你的问题!
这个很基础,对于需要学习二叉树的人来说,入门很好!

评分

参与人数 1荣誉 +10 鱼币 +10 收起 理由
怡静 + 10 + 10

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-7-2 17:55:42 | 显示全部楼层
此帖仅作者可见
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com

使用道具 举报

发表于 2013-7-3 16:32:52 | 显示全部楼层
此帖仅作者可见
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com

使用道具 举报

发表于 2013-7-3 19:48:47 | 显示全部楼层
此帖仅作者可见
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com

使用道具 举报

发表于 2013-7-4 18:56:00 | 显示全部楼层
此帖仅作者可见
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com

使用道具 举报

发表于 2013-7-13 01:46:15 | 显示全部楼层
此帖仅作者可见
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com

使用道具 举报

发表于 2013-7-15 00:29:43 | 显示全部楼层
此帖仅作者可见
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com

使用道具 举报

发表于 2013-7-15 08:51:24 | 显示全部楼层
此帖仅作者可见
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com

使用道具 举报

发表于 2017-4-17 20:57:17 | 显示全部楼层
此帖仅作者可见
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com

使用道具 举报

发表于 2020-12-8 19:20:08 From FishC Mobile | 显示全部楼层
此帖仅作者可见
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com

使用道具 举报

发表于 2020-12-22 22:23:57 | 显示全部楼层
此帖仅作者可见
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-7-5 00:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表