数据结构中二叉树的相关操作

#include<stdio.h>

#include<stdlib.h>

#define DataType char



typedef struct BiTNode{    //二叉链表的结构类型

DataType data;         //数据域

struct BiTNode *lchild,*rchild;    //二叉链表的指针域

}BiTNode,*BiTree;



BiTree CreateBiTree(){         //先序建立二叉树

char ch;             //声明二叉树里面的数据类型

BiTree T;            //定义一个二叉树

scanf("%c",&ch);         //输入数据

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

else{

T=(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){

InOrderTraverse(T->lchild);

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

InOrderTraverse(T->rchild);

}

}



void PostOrderTraverse(BiTree T){        //后序遍历二叉树,递归函数

if(T){

PostOrderTraverse(T->lchild);

PostOrderTraverse(T->rchild);

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

}

}

int main(){

BiTree T;

printf("先序输入二叉树:\n");

T = CreateBiTree();          //先序创建二叉树

printf("先序遍历输出二叉树:\n");

PreOrderTraverse(T);         //先序遍历输出二叉树

printf("\n");

printf("中序遍历输出二叉树:\n");

InOrderTraverse(T);        //中序遍历输出二叉树

printf("\n");

printf("后序遍历输出二叉树:\n");

PostOrderTraverse(T);        //后序遍历输出二叉树

printf("\n");

system("pause");            //防止运行后闪退,相当于按住暂停键

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值