c语言_构建一个静态二叉树实现方法分享

—-想了解c语言_构建一个静态二叉树实现方法分享的全部内容且更多的C语言教程关注<计算机技术网(www.ctvol.com)!!>

第一、树的构建

定义树结构

  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语言_构建一个静态二叉树实现方法

以上这篇c语言_构建一个静态二叉树实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持<计算机技术网(www.ctvol.com)!!>。

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/487960.html

(0)
上一篇 2020年11月12日
下一篇 2020年11月12日

精彩推荐