c语言如何构建一个静态二叉树
这篇文章主要介绍“c语言如何构建一个静态二叉树”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“c语言如何构建一个静态二叉树”文章能帮助大家解决问题。
第一、树的构建
定义树结构
structBTNode{chardata;structBTNode*pLChild;structBTNode*pRChild;};
静态方式创建一个简单的二叉树
structBTNode*create_list(){structBTNode*pA=(structBTNode*)malloc(sizeof(BTNode));structBTNode*pB=(structBTNode*)malloc(sizeof(BTNode));structBTNode*pC=(structBTNode*)malloc(sizeof(BTNode));structBTNode*pD=(structBTNode*)malloc(sizeof(BTNode));structBTNode*pE=(structBTNode*)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=pB->pRChild=NULL;pC->pLChild=pD;pC->pRChild=NULL;pD->pLChild=NULL;pD->pRChild=pE;pE->pLChild=pE->pRChild=NULL;returnpA;}
第二、树的三种遍历
1. 先序遍历
//先序输出voidPreTravense(structBTNode*pHead){if(NULL!=pHead){printf("%c",pHead->data);if(NULL!=pHead->pLChild){PreTravense(pHead->pLChild);}if(NULL!=pHead->pRChild){PreTravense(pHead->pRChild);}}}
2. 中序遍历
//中序输出voidInTravense(structBTNode*pHead){if(NULL!=pHead){if(NULL!=pHead->pLChild){PreTravense(pHead->pLChild);}printf("%c",pHead->data);if(NULL!=pHead->pRChild){PreTravense(pHead->pRChild);}}}
3.后续遍历
//后序输出voidPostTravense(structBTNode*pHead){if(NULL!=pHead){if(NULL!=pHead->pLChild){PreTravense(pHead->pLChild);}if(NULL!=pHead->pRChild){PreTravense(pHead->pRChild);}printf("%c",pHead->data);}}
第三、最终运行测试
intmain(){printf("创建序列\n");structBTNode*pHead=create_list();printf("先序输出\n");PreTravense(pHead);printf("中序输出\n");InTravense(pHead);printf("后序输出\n");PostTravense(pHead);return0;}
关于“c语言如何构建一个静态二叉树”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注恰卡编程网行业资讯频道,小编每天都会为大家更新不同的知识点。