c语言如何构建一个静态二叉树

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语言如何构建一个静态二叉树”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注恰卡编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

发布于 2022-04-03 22:39:29
收藏
分享
海报
0 条评论
32
上一篇:java代码实例分析 下一篇:C语言怎么利用栈和队列实现回文检测功能
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码