您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“c++ Tree怎么實(shí)現(xiàn)”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“c++ Tree怎么實(shí)現(xiàn)”吧!
#include <stdio.h> #include <malloc.h> typedef struct BTnode { int data; struct BTnode *pLchild; struct BTnode *pRchild; }BTNode; BTNode* createBTree()//靜態(tài)造鏈?zhǔn)綐? { 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) //先序遍歷 { //先訪問根節(jié)點(diǎn) 先序訪問左子樹 先序訪問右子樹 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序遍歷 { //先訪問根節(jié)點(diǎn) 先序訪問左子樹 先序訪問右子樹 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) //先序遍歷 { //先訪問根節(jié)點(diǎn) 先序訪問左子樹 先序訪問右子樹 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怎么實(shí)現(xiàn)”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。