把數據結構與算法C++描述大體的翻了一遍,把裏面大體提到的數據結構和算法的名詞記錄下來,逐一攻克。 算法
Go and fight! 數據結構
鏈表:鏈表由一系列沒必要在內存中相連的數據組成,每個節點均包含表元素和志向下一個節點的鏈(Link),最後一個節點Link指向NULL; 數據結構和算法
棧(stack):棧是限制刪除了插入操做位置的鏈表,該位置成爲棧頂(top); 指針
隊列(queue):隊列也是鏈表,它的插入在一段進行,刪除在另外一端進行; 隊列
樹(tree):樹是一種非線性的層次彙集,由n(n>=0)個節點組成。n=0時成爲空樹,n>0時:有一個特定的稱之爲根(root)的節點,根節點只有直接後繼,沒有直接前驅; 除根之外的其餘節點能夠劃分爲m個互不相交的集合,每一個集合又是一棵樹,他們稱之爲根的子樹。每一個子樹的根節點僅有一個直接前驅,可是能夠有一個或多個直接後繼。(樹的定義有不少,這只是其中的一種) 內存
二叉樹:每一個節點都不能多於兩個節點的樹; 數據結構與算法
二叉查找樹:對於書中的每一個節點X,它的左子樹的中的全部項的值,小於X的項,而他的有子樹中的全部項的值大於X的項; 二叉樹
AVL樹:即平衡二叉查找樹; queue
B樹:在B-樹中查找給定關鍵字的方法是,首先把根結點取來,在根結點所包含的關鍵字K1,…,kj查找給定的關鍵字(可用順序查找或二分查找法),若找到等於 給定值的關鍵字,則查找成功;不然,必定能夠肯定要查的關鍵字在某個Ki或Ki+1之間,因而取Pi所指的結點繼續查找,直到找到,或指針Pi爲空時查找 失敗; 方法
優先隊列:普通的隊列是一種先進先出的數據結構,元素在隊列尾追加,而從隊列頭刪除。在優先隊列中,元素被賦予優先級。當訪問元素時,具備最高優先級的元素最早刪除;
二叉堆:二叉堆是一種特殊的堆,二叉堆是徹底二元樹或者是近似徹底二元樹。二叉堆有兩種:最大堆和最小堆。最大堆:父節點的鍵值老是大於或等於任何一個子節點的鍵值;最小堆:父結點的鍵值老是小於或等於任何一個子節點的鍵值。