
第一、树的构建
定义树结构
struct BTNode { char data; struct BTNode* pLChild; struct BTNode* pRChild; }; 静态方式创建一个简单的二叉树
struct BTNode* create_List() { 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 = pB->pRChild = NulL; pC->pLChild = pD; pC->pRChild = NulL; pD->pLChild = NulL; pD->pRChild = pE; pE->pLChild = pE->pRChild = NulL; return pA; } 第二、树的三种遍历
1. 先序遍历
//先序输出 voID PreTravense(struct BTNode* phead) { if (NulL!= phead) { printf("%c",phead->data); if (NulL!= phead->pLChild) { PreTravense(phead->pLChild); } if (NulL != phead->pRChild) { PreTravense(phead->pRChild); } } } 2. 中序遍历
//中序输出 voID InTravense(struct BTNode* phead) { if (NulL != phead) { if (NulL != phead->pLChild) { PreTravense(phead->pLChild); } printf("%c",phead->data); if (NulL != phead->pRChild) { PreTravense(phead->pRChild); } } } 3.后续遍历
//后序输出 voID PostTravense(struct BTNode* phead) { if (NulL != phead) { if (NulL != phead->pLChild) { PreTravense(phead->pLChild); } if (NulL != phead->pRChild) { PreTravense(phead->pRChild); } printf("%c",phead->data); } } 第三、最终运行测试
int main() { printf("创建序列\n"); struct BTNode* phead = create_List(); printf("先序输出\n"); PreTravense(phead); printf("中序输出\n"); InTravense(phead); printf("后序输出\n"); PostTravense(phead); return 0; } @H_419_62@以上这篇c语言_构建一个静态二叉树实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。
总结以上是内存溢出为你收集整理的c语言_构建一个静态二叉树实现方法全部内容,希望文章能够帮你解决c语言_构建一个静态二叉树实现方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)