二叉樹 遍歷

2021-10-01 04:30:54 字數 1531 閱讀 8740

#include#include#include//二叉樹結點

typedef struct binarynodebinarynode;

void recursion1(binarynode* root);

void recursion2(binarynode* root);

void recursion3(binarynode* root);

void createbinarytree();

binarynode node2 = ;

binarynode node3 = ;

binarynode node4 = ;

binarynode node5 = ;

binarynode node6 = ;

binarynode node7 = ;

binarynode node8 = ;

//建立結點關係

node1.lchild = &node2;

node1.rchild = &node6;

node2.rchild = &node3;

node3.lchild = &node4;

node3.rchild = &node5;

node6.rchild = &node7;

node7.lchild = &node8;

printf("前序遍歷:");

recursion1(&node1);

printf("\n中序遍歷:");

recursion2(&node1);

printf("\n後序遍歷:");

recursion3(&node1);

}/***

遞迴遍歷 :

前序-中序-後序

***/

//前序遍歷

void recursion1(binarynode* root)

//訪問根結點

printf("%c",root->ch);

//遍歷左子樹

recursion1(root->lchild);

//遍歷右子樹

recursion1(root->rchild);

}//中序遍歷

void recursion2(binarynode* root)

//遍歷左子樹

recursion2(root->lchild);

//訪問根結點

printf("%c",root->ch);

//遍歷右子樹

recursion2(root->rchild);

}//後序遍歷

void recursion3(binarynode* root)

//遍歷左子樹

recursion3(root->lchild);

//遍歷右子樹

recursion3(root->rchild);

//訪問根結點

printf("%c",root->ch);

}void test01()

int main()

構建二叉樹 遍歷二叉樹

陣列法構建二叉樹 public class main public static void main string args 用陣列的方式構建二叉樹 public static void createbintree 把linkedlist集合轉成二叉樹的形式 for int j 0 j 最後乙個父節...

二叉樹遍歷

二叉樹的遍歷非常重要,但對已一棵比較複雜的樹,要寫出它的先 中 後序遍歷,往往不是那麼簡單,也很容易犯錯。這裡介紹一種比較直觀且不容易犯錯的方法。對於圖1所示的二叉樹,要寫出它的先 中 後序遍歷,往往很容易出錯。圖 1 其實,我們可以用圖2中的紅線描畫出二叉樹的輪廓。圖 2 而對於樹上的每乙個節點,...

二叉樹遍歷

描述 華為實習生招聘,有一道類似如下的題目 給出二叉樹,如圖1所示 圖 1 二叉樹 要求給出中序遍歷的結果。下面分別就前序遍歷 中序遍歷 後序遍歷進行分析。規律 前序遍歷 根在前 子樹在根後且左子樹比右子樹靠前 中序遍歷 根在中 左子樹在根左邊,右子樹在根右邊 後序遍歷 根在後 子樹在根前且左子樹比...