加载中…
个人资料
XiaoWanDuo
XiaoWanDuo
  • 博客等级:
  • 博客积分:0
  • 博客访问:759
  • 关注人气:33
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

二叉树的建立(C语言)

(2012-07-28 23:48:57)
标签:

数据结构

杂谈

    二叉树是采用递归定义的,实现起来代码简洁(也许并不简单)。并且它在具体的计算机科学中有很重要的运用,是一种很重要的数据结构,二叉树有三种遍历和建立的方式。今天先学习一下它的建立和打印。

以下代码在Win-Tc1.9.1下编译通过。

 

#include <stdio.h>

#define ElemType char

//节点声明,数据域、左孩子指针、右孩子指针

typedef struct BiTNode{

    char data;

    struct BiTNode *lchild,*rchild;

}BiTNode,*BiTree;

//先序建立二叉树

BiTree CreateBiTree(){

    char ch;

    BiTree T;

    scanf("%c",&ch);

    if(ch=='#')T=NULL;

    else{

        (BiTree)malloc(sizeof(BiTNode));

        T->data ch;

        T->lchild CreateBiTree();

        T->rchild CreateBiTree();

    }

    return T;//返回根节点

}

//先序遍历二叉树

void PreOrderTraverse(BiTree T){

    if(T){

       printf("%c",T->data);

       PreOrderTraverse(T->lchild);

       PreOrderTraverse(T->rchild);

    }

}

 

//中序遍历

void InOrderTraverse(BiTree T){

    if(T){

       PreOrderTraverse(T->lchild);

       printf("%c",T->data);

       PreOrderTraverse(T->rchild);

    }

}

//后序遍历

void PostOrderTraverse(BiTree T){

    if(T){

       PreOrderTraverse(T->lchild);

       PreOrderTraverse(T->rchild);

       printf("%c",T->data);

    }

}

void main(){

    BiTree T;

    CreateBiTree();//建立

    PreOrderTraverse(T);//输出

    getch();

}

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有