您好,登錄后才能下訂單哦!
本篇內容主要講解“c++ Tree怎么實現”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“c++ Tree怎么實現”吧!
#include <stdio.h> #include <malloc.h> typedef struct BTnode { int data; struct BTnode *pLchild; struct BTnode *pRchild; }BTNode; BTNode* createBTree()//靜態造鏈式樹 { BTNode* pA =(BTNode*) malloc(sizeof(BTNode)); BTNode* pB =(BTNode*) malloc(sizeof(BTNode)); BTNode* pC =(BTNode*) malloc(sizeof(BTNode)); BTNode* pD =(BTNode*) malloc(sizeof(BTNode)); BTNode* pE =(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 = NULL; pB->pRchild = NULL; pC->pLchild = pD; pC->pRchild = NULL; pD->pLchild = NULL; pD->pRchild = pE; pE->pLchild = NULL; pE->pRchild = NULL; return pA; } void First_print(BTNode* pT) //先序遍歷 { //先訪問根節點 先序訪問左子樹 先序訪問右子樹 if(pT) { printf("%c\n",pT->data); if(pT->pLchild) { First_print(pT->pLchild); } if(pT->pRchild) { First_print(pT->pRchild); } } } void Middl_print(BTNode* pT) //mid序遍歷 { //先訪問根節點 先序訪問左子樹 先序訪問右子樹 if(pT) { if(pT->pLchild) { Middl_print(pT->pLchild); } printf("%c\n",pT->data); if(pT->pRchild) { Middl_print(pT->pRchild); } } } void end_print(BTNode* pT) //先序遍歷 { //先訪問根節點 先序訪問左子樹 先序訪問右子樹 if(pT) { if(pT->pLchild) { end_print(pT->pLchild); } if(pT->pRchild) { end_print(pT->pRchild); } printf("%c\n",pT->data); } } int main () { BTNode* pT = createBTree(); printf("first traverse print: \n"); First_print(pT); printf("middle traverse print: \n"); Middl_print(pT); printf("end traverse print: \n"); end_print(pT); return 0; }
到此,相信大家對“c++ Tree怎么實現”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。