二叉查詢樹(華中科技大學計算機考研複試上機題)
題目描述
輸入一系列整數,建立二叉排序數,並進行前序,中序,後序遍歷。
輸入描述:
輸入第一行包括一個整數n(1<=n<=100)。
接下來的一行包括n個整數。
輸出描述:
可能有多組測試資料,對於每組資料,將題目所給資料建立一個二叉排序樹,並對二叉排序樹進行前序、中序和後序遍歷。
每種遍歷結果輸出一行。每行最後一個資料之後有一個空格。
輸入一系列整數,建立二叉排序數,並進行前序,中序,後序遍歷。
輸入描述:
輸入第一行包括一個整數n(1<=n<=100)。
接下來的一行包括n個整數。
輸出描述:
可能有多組測試資料,對於每組資料,將題目所給資料建立一個二叉排序樹,並對二叉排序樹進行前序、中序和後序遍歷。
每種遍歷結果輸出一行。每行最後一個資料之後有一個空格。
輸入中可能有重複元素,但是輸出的二叉樹遍歷序列中重複元素不用輸出。
二叉查詢樹
二叉查詢樹,也叫二叉排序樹是滿足以下條件的二叉樹:
1.左子樹上的所有節點值均小於根節點值
2.右子樹上的所有節點值均不小於根節點值
3.左右子樹也滿足上述兩個條件
節點類:
class Node {
public int iData; //資料域,可以存放物件
public Node left; //指向左孩子
public Node right; //指向右孩子
public void displsyndoe(){
System.out.print(iData +" ");
}
public Node(int iData) { //建構函式
this.iData = iData;
}
}
二叉查詢樹類
二叉查詢樹的插入過程如下:
1.若當前的二叉查詢樹為空,則插入的元素為根節點
2.若插入的元素值小於根節點值,則將元素插入到左子樹中
3.若插入的元素值不小於根節點值,則將元素插入到右子樹中
public void insert(int iData ){ //插入新的節點
Node newNode = new Node(iData);
if(root == null){ //樹為空,把第一個節點置為根節點
root = newNode;
}else{ //不為空
Node current = root; //宣告啷個指向root的引用
Node parent = root;
while (true){
parent = current;
if(iData < current.iData){ //待插入的數值小於當前節點的值
current = current.left; //把current指向當前節點的左孩子
if (current == null){
parent.left = newNode;
return;
}
}else {
current = current.right; //待插入的數值大於當前節點的值
if (current == null){
parent.right = newNode;
return;
}
}
}
}
}
}
遍歷
遍歷是一個簡單的遞迴過程,記住先序、中序、後序遍歷的口訣就可以了
public void preOrder(Node node){
if(node!=null){
node.displsyndoe();
preOrder(node.left);
preOrder(node.right);
}
}
public void middleOrder(Node node){
if(node!=null){
middleOrder(node.left);
node.displsyndoe();
middleOrder(node.right);
}
}
public void postOrder(Node node){
if(node!=null){
postOrder(node.left);
postOrder(node.right);
node.displsyndoe();
}
}
相關文章
- 一文輕鬆回顧計算機考研複試常問問題 (本科生期末複習也適用) 計算機網路篇計算機網路
- 二叉樹 & 二叉查詢樹二叉樹
- 計算機考研經驗總結計算機
- 查詢二叉樹二叉樹
- 二叉查詢樹
- 二叉查詢樹(二叉排序樹)排序
- 考研計算機408分值分佈計算機
- 計算機網路(王道考研筆記)計算機網路筆記
- 手擼二叉樹——二叉查詢樹二叉樹
- 計算機論文查詢網站計算機網站
- Java計算機二級(上機真題)Java計算機
- 大學計算機基礎計算機
- 平衡二叉查詢樹:紅黑樹
- 二叉查詢樹和笛卡爾樹
- 二叉查詢樹【二叉排序樹】構建和查詢演算法 PHP 版排序演算法PHP
- 第 34 題:如何實現二叉查詢樹?
- 二叉查詢樹的插入刪除查詢
- 二叉樹路徑查詢二叉樹
- 2021 王道考研 計算機組成原理+習題講解計算機
- Mac計算機上如何輕鬆查詢和刪除類似照片Mac計算機
- 計算機程式的思維邏輯 (42) - 排序二叉樹計算機排序二叉樹
- 查詢|有序表折半查詢判定樹|二叉排序樹|3階B-樹排序
- 2020年蘇大計算機考研872真題及解析計算機
- 河北工業大學計算機/軟體考研專業課鉅變,一門變三門!計算機
- 計算機學生應不應該考研?附上袁哥的考研經歷計算機
- Amazing tree —— 二叉查詢樹
- 二叉查詢樹的個數
- 滿二叉樹、完全二叉樹、平衡二叉樹、二叉搜尋樹(二叉查詢樹)和最優二叉樹二叉樹
- 5分鐘瞭解二叉樹之二叉查詢樹二叉樹
- 二叉查詢樹(查詢、插入、刪除)——C語言C語言
- 計算機網路複習計算機網路
- 二叉查詢樹概念及實現
- 二叉排序樹查詢,插入,刪除排序
- C#實現二叉查詢樹C#
- 五大經典查詢(1)_二叉排序樹查詢排序
- 計算機網路考試計算機網路
- 二叉樹----寬度計算二叉樹
- 計算機組成原理期末考試題計算機