用一個數(shù)組接收層次輸入(下標0不存儲信息),看圖可以發(fā)現(xiàn)父節(jié)點的左子樹是自身下標乘以二,右子樹是自身下標乘以二再加一。
員工經(jīng)過長期磨合與沉淀,具備了協(xié)作精神,得以通過團隊的力量開發(fā)出優(yōu)質(zhì)的產(chǎn)品。創(chuàng)新互聯(lián)堅持“專注、創(chuàng)新、易用”的產(chǎn)品理念,因為“專注所以專業(yè)、創(chuàng)新互聯(lián)網(wǎng)站所以易用所以簡單”。公司專注于為企業(yè)提供做網(wǎng)站、成都做網(wǎng)站、微信公眾號開發(fā)、電商網(wǎng)站開發(fā),小程序開發(fā),軟件按需定制等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。A的下標是1,下標乘以二是左子樹B的下標,下標乘以二再加一是有子樹C的下標。
如果左子樹或者右子樹的下標對應(yīng)的字符為‘*’,則當前為NULL,沒有子樹。
如果當前下標左子樹下標大于數(shù)組長度(自身下標*2>數(shù)組長度),則當前沒有左子樹(為NULL)。
如果當前下標右子樹下標大于數(shù)組長度(自身下標*2+1>數(shù)組長度),則當前沒有右子樹(為NULL)。
#define _CRT_SECURE_NO_WARNINGS
#include#include#include// 創(chuàng)建樹的數(shù)據(jù)類型
typedef struct Node {
char val;
struct Node* leftChild = NULL;
struct Node* rightChild = NULL;
} Tree, * BiTree;
void preVisit(BiTree T); // 先序遍歷
void midVisit(BiTree T); // 中序遍歷
void postVistit(BiTree T);// 后序遍歷
void createTree(BiTree& T, int index); // 用層次輸入的數(shù)據(jù)。創(chuàng)建二叉樹
void inputData(BiTree& T); // 輸入樹的層次遍歷
int main(void) {
BiTree T;
inputData(T);
printf("\n先序:");
preVisit(T);
printf("\n中序:");
midVisit(T);
printf("\n后序:");
postVistit(T);
}
char str[100];
int num = 1;
void createTree(BiTree& T, int index) {
if (str[index] == '*') {
T = NULL;
return;
}
T = (BiTree)malloc(sizeof(Tree));
T->val = str[index];
T->leftChild = NULL;
T->rightChild = NULL;
if (index * 2<= num) {
createTree(T->leftChild, index * 2);
}
if (index * 2 + 1<= num) {
createTree(T->rightChild, index * 2 + 1);
}
}
void inputData(BiTree& T) {
char ch;
while (1) {
scanf("%c", &ch);
if (ch == '@')
break;
str[num++] = ch;
}
num--;
createTree(T, 1);
}
void preVisit(BiTree T) {
if (T) {
printf("%c", T->val);
preVisit(T->leftChild);
preVisit(T->rightChild);
}
}
// 中序遍歷
void midVisit(BiTree T) {
if (T) {
midVisit(T->leftChild);
printf("%c", T->val);
midVisit(T->rightChild);
}
}
// 后序遍歷
void postVistit(BiTree T) {
if (T) {
postVistit(T->leftChild);
postVistit(T->rightChild);
printf("%c", T->val);
}
}
輸入:abd*c*e@
輸出如圖:
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧