紅黑樹是一棵二叉搜索樹,每個結點上增加了一個屬性來存儲顏色是紅色還是黑色,紅黑樹可以確保沒有一條路徑會比其他路徑長出2倍,所以近似可以認為是平衡的。 每個結點包含5個屬性:color, key, left, right, p。如果一個結點沒有子結點或者父結點,則該結點的相應指針屬性 ...
摘要: 紅黑樹是一種二叉查找樹,但在每個結點上增加了一個存儲位表示結點的顏色,可以是RED或者BLACK。通過對任何一條從根到葉子的路徑上各個着色方式的限制,紅黑樹確保沒有一條路徑會比其他路徑長出兩倍,因而是接近平衡的。本章主要介紹了紅黑樹的性質 左右旋轉 插入和刪除。重點分析了在紅黑樹中插入和刪除元素的過程,分情況進行詳細討論。一棵高度為h的二叉查找樹可以實現任何一種基本的動態集合操作,如SEA ...
2013-01-30 12:25 11 14678 推薦指數:
紅黑樹是一棵二叉搜索樹,每個結點上增加了一個屬性來存儲顏色是紅色還是黑色,紅黑樹可以確保沒有一條路徑會比其他路徑長出2倍,所以近似可以認為是平衡的。 每個結點包含5個屬性:color, key, left, right, p。如果一個結點沒有子結點或者父結點,則該結點的相應指針屬性 ...
1、前言: 接着學習動態規划方法,最優二叉查找樹問題。二叉查找樹參考http://www.cnblogs.com/Anker/archive/2013/01/28/2880581.html。如果在二叉樹中查找元素不考慮概率及查找不成功的情況下,可以采用紅黑樹或者平衡二叉樹來搜索 ...
摘要: 本章介紹了二叉查找樹的概念及操作。主要內容包括二叉查找樹的性質,如何在二叉查找樹中查找最大值、最小值和給定的值,如何找出某一個元素的前驅和后繼,如何在二叉查找樹中進行插入和刪除操作。在二叉查找樹上執行這些基本操作的時間與樹的高度成正比,一棵隨機構造的二叉查找樹的期望高度為O(lgn ...
本章通過介紹插入排序和歸並排序兩種常見的排序算法來說明算法的過程及算法分析,在介紹歸並排序算法過程中引入了分治(divide-and-conquer)算法策略。 1、插入排序 輸入:n個數(a1,a2,a3,...,an) 輸出:輸入序列的一個排列(a1',a2',a3 ...
《算法導論》讀書筆記之第1章 算法在計算機中的作用 本章是本書的開篇,介紹了什么是算法,為什么要學習算法,算法在計算機中的地位及作用。 算法(algorithm)簡單來說就是定義良好的計算機過程,它取一個或一組值作為輸入,並產生出一個或一組值作為輸出。即算法就是一系列的計算步驟 ...
本章開始介紹了堆的基本概念,然后引入最大堆和最小堆的概念。全章采用最大堆來介紹堆的操作,兩個重要的操作是調整最大堆和創建最大堆,接着着兩個操作引進了堆排序,最后介紹了采用堆實現優先級隊列。 1、堆 堆給人的感覺是一個二叉樹,但是其本質是一種數組對象,因為對堆進行操作的時候將堆視為一顆 ...
本章介紹了快速排序及其算法分析,快速排序采用的是分治算法思想,對包含n個數的輸入數組,最壞情況下運行時間為θ(n^2),但是平均性能相當好,期望的運行時間為θ(nlgn)。另外快速排序能夠就地排序(我理解是不需要引入額外的輔助空間,每次划分能確定一個元素的具體位置),在虛擬環境中能很好的工作 ...
摘要: 本章介紹了散列表(hash table)的概念、散列函數的設計及散列沖突的處理。散列表類似與字典的目錄,查找的元素都有一個key與之對應,在實踐當中,散列技術的效率是很高的,合理的設計散 ...