#include <stdio.h>
#include <malloc.h>
typedef struct BTnode
{
int data;
struct BTnode *pLchild;
struct BTnode *pRchild;
}BTNode;
BTNode* createBTree()//静态造链式树
{
BTNode* pA =(BTNode*) malloc(sizeof(BTNode));
BTNode* pB =(BTNode*) malloc(sizeof(BTNode));
BTNode* pC =(BTNode*) malloc(sizeof(BTNode));
BTNode* pD =(BTNode*) malloc(sizeof(BTNode));
BTNode* pE =(BTNode*) malloc(sizeof(BTNode));
pA->data = 'A';
pB->data = 'B';
pC->data = 'C';
pD->data = 'D';
pE->data = 'E';
pA->pLchild = pB;
pA->pRchild = pC;
pB->pLchild = NULL;
pB->pRchild = NULL;
pC->pLchild = pD;
pC->pRchild = NULL;
pD->pLchild = NULL;
pD->pRchild = pE;
pE->pLchild = NULL;
pE->pRchild = NULL;
return pA;
}
void First_print(BTNode* pT) //先序遍历
{
//先访问根节点 先序访问左子树 先序访问右子树
if(pT)
{
printf("%c\n",pT->data);
if(pT->pLchild)
{
First_print(pT->pLchild);
}
if(pT->pRchild)
{
First_print(pT->pRchild);
}
}
}
void Middl_print(BTNode* pT) //mid序遍历
{
//先访问根节点 先序访问左子树 先序访问右子树
if(pT)
{
if(pT->pLchild)
{
Middl_print(pT->pLchild);
}
printf("%c\n",pT->data);
if(pT->pRchild)
{
Middl_print(pT->pRchild);
}
}
}
void end_print(BTNode* pT) //先序遍历
{
//先访问根节点 先序访问左子树 先序访问右子树
if(pT)
{
if(pT->pLchild)
{
end_print(pT->pLchild);
}
if(pT->pRchild)
{
end_print(pT->pRchild);
}
printf("%c\n",pT->data);
}
}
int main ()
{
BTNode* pT = createBTree();
printf("first traverse print: \n");
First_print(pT);
printf("middle traverse print: \n");
Middl_print(pT);
printf("end traverse print: \n");
end_print(pT);
return 0;
}
Tree 笨方法实现
原创qq5dac5df576d2c ©著作权
©著作权归作者所有:来自51CTO博客作者qq5dac5df576d2c的原创作品,请联系作者获取转载授权,否则将追究法律责任
下一篇:链式Tree->二叉搜索树
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
java 实现繁简字体转换(笨方法)java i++
-
比较笨的分页方法
Java:sql += " order by id
sql System 当前页 -
笨方法学Python怎么样 笨方法学python pdf
这是讨论python如何入门系列的第4篇,之前的文章列表如下酷python:入门python困难,那是因为你的方法错了2. 酷python:以专业视角点评推荐python入门教程《笨方法学Python》3. 酷python:以专业视角推荐python教程《python编程快速上手---让繁琐工作自动化》本篇文章从专业视角点评推荐《Python课堂笔记(高淇400集第一季)》1、适合哪
笨方法学Python怎么样 笨方法学python pdf 高淇python400集课堂笔记 python 零基础