千家信息网

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

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,这篇文章主要介绍"c语言如何构建一个静态二叉树"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"c语言如何构建一个静态二叉树"文章能帮助大家解决问题。第一、树的构
千家信息网最后更新 2024年11月24日c语言如何构建一个静态二叉树

这篇文章主要介绍"c语言如何构建一个静态二叉树"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"c语言如何构建一个静态二叉树"文章能帮助大家解决问题。

第一、树的构建

定义树结构

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; }

关于"c语言如何构建一个静态二叉树"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

0