C语言 树结构程式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 树结构程式相关的知识,希望对你有一定的参考价值。

输入许多父子关系,直到99为止,依据父子关系将这个一般树建立起来。将这棵家族树依照广度优先的顺序打印出结果。例如输入:
AB
AC
AD
CE
CF
FG
FH
99
输出结果:
ABCDEFGH

(
或是阶层式结果:
第一代:A
第二代:BCD
第三代:EF
第四代:GH
泪求完整程式码 指针直接把我指崩溃了,求高手帮助 因为是新的帐号 我保证会努力答题给答题的各位提高悬赏

参考技术A # include <stdio.h>

# include <malloc.h>

struct BTNode



int data;

struct BTNode * pLchild;//p是指针,L是左,child是孩子

struct BTNode * pRchild;

;

//函数声明

struct BTNode * CreateBTree(void);//创建树

void PreTraverseBTree(struct BTNode * pT);//先序遍历

void InTraverseBTree(struct BTNode * pT);//中序遍历

void PostTraverseBTree(struct BTNode * pT);//后续遍历

int main(void)



struct BTNode * pT = CreateBTree();

PreTraverseBTree(pT);

printf("\n");

InTraverseBTree(pT);

printf("\n");

PostTraverseBTree(pT);

return 0;



//创建树

struct BTNode * CreateBTree(void)



struct BTNode * pA = (struct BTNode * )malloc(sizeof(BTNode));

struct BTNode * pB = (struct BTNode * )malloc(sizeof(BTNode));

struct BTNode * pC = (struct BTNode * )malloc(sizeof(BTNode));

struct BTNode * pD = (struct BTNode * )malloc(sizeof(BTNode));

struct BTNode * pE = (struct 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 PreTraverseBTree(struct BTNode * pT)

//先访问根节点,再先序访问左子树,最后先序访问右子树

if ( pT != NULL)



printf("%c\n",pT->data);//访问根节点

//pT->pLchild可以代表整个左子树

PreTraverseBTree(pT->pLchild);

PreTraverseBTree(pT->pRchild);



return;



//中序遍历

void InTraverseBTree(struct BTNode * pT)



if(pT != NULL )



if (NULL != pT->pLchild)



InTraverseBTree(pT->pLchild);



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

if (NULL != pT->pRchild)



InTraverseBTree(pT->pRchild);





return;



//后续遍历

void PostTraverseBTree(struct BTNode * pT)



if(pT != NULL )



if (NULL != pT->pLchild)



PostTraverseBTree(pT->pLchild);



if (NULL != pT->pRchild)



PostTraverseBTree(pT->pRchild);



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



return;

以上是关于C语言 树结构程式的主要内容,如果未能解决你的问题,请参考以下文章

急!数据结构最小生成树prim算法C语言实现

急!数据结构最小生成树prim算法C语言实现

C语言数据结构树和二叉树的问题

数据结构-如何用二叉树实现hash表(C语言)

求数据结构 B-树与B+树及其操作的代码(C语言版)

数据结构C语言 《四》二叉树链式的实现及操作《下》