c语言版静态链式二叉树怎么实现

本篇内容介绍了“c语言版静态链式二叉树怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

创新互联主营大同网站建设的网络公司,主营网站建设方案,成都APP应用开发,大同h5成都微信小程序搭建,大同网站营销推广欢迎大同等地区企业咨询

#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);

}

}

“c语言版静态链式二叉树怎么实现”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


本文名称:c语言版静态链式二叉树怎么实现
文章地址:http://ybzwz.com/article/jgogie.html