c语言二叉树静态存储,静态链式二叉树(c语言版)

#include

#include

typedef struct Node{

char data;

struct Node * pLchild;

struct Node * pRchild;

}NODE,* PNODE;

PNODE create_binTree(void);

void pre_traver(PNODE);

void in_traver(PNODE);

void post_traver(PNODE);

void main(void){

PNODE pNode = create_binTree();

//先序遍历

//pre_traver(pNode);

//中序遍历

//in_traver(pNode);

//后序遍历

post_traver(pNode);

}

PNODE create_binTree(void){

PNODE pA = (PNODE)malloc(sizeof(NODE));

PNODE pB = (PNODE)malloc(sizeof(NODE));

PNODE pC = (PNODE)malloc(sizeof(NODE));

PNODE pD = (PNODE)malloc(sizeof(NODE));

PNODE pE = (PNODE)malloc(sizeof(NODE));

pA->data = 'A';

pA->pLchild = pB;

pA->pRchild = pC;

pB->data = 'B';

pB->pLchild = NULL;

pB->pRchild = NULL;

pC->data = 'C';

pC->pLchild = pD;

pC->pRchild = NULL;

pD->data = 'D';

pD->pLchild = NULL;

pD->pRchild = pE;

pE->data = 'E';

pE->pLchild = NULL;

pE->pRchild = NULL;

return pA;

}

//先序遍历

void pre_traver(PNODE pNode){

/*

思路:1、先访问根节点

2、再先序遍历左子树

3、再先序遍历右子树

*/

if(NULL != pNode){

printf("%c\n",pNode->data);

if(NULL != pNode->pLchild){

pre_traver(pNode->pLchild);

}

if(NULL != pNode->pRchild){

pre_traver(pNode->pRchild);

}

}

}

//中序遍历

void in_traver(PNODE pNode){

if(NULL != pNode){

if(NULL != pNode->pLchild){

in_traver(pNode->pLchild);

}

printf("%c\n",pNode->data);

if(NULL != pNode->pRchild){

in_traver(pNode->pRchild);

}

}

}

//后序遍历

void post_traver(PNODE pNode){

if(NULL != pNode){

if(NULL != pNode->pLchild){

post_traver(pNode->pLchild);

}

if(NULL != pNode->pRchild){

post_traver(pNode->pRchild);

}

printf("%c\n",pNode->data);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值