資料結構和演算法必知必會的50個實現

2021-09-13 22:30:33 字數 1107 閱讀 1287

陣列

實現乙個支援動態擴容的陣列

實現乙個大小固定的有序陣列,支援動態增刪改操作

實現兩個有序陣列合併為乙個有序陣列

鍊錶實現單鏈表、迴圈鍊錶、雙向鍊錶,支援增刪操作

實現單鏈表反轉

實現兩個有序的鍊錶合併為乙個有序鍊錶

實現求鍊錶的中間結點

棧用陣列實現乙個順序棧

用鍊錶實現乙個鏈式棧

程式設計模擬實現乙個瀏覽器的前進、後退功能

佇列用陣列實現乙個順序佇列

用鍊錶實現乙個鏈式佇列

實現乙個迴圈佇列

遞迴程式設計實現斐波那契數列求值f(n)=f(n-1)+f(n-2)

程式設計實現求階乘n!

程式設計實現一組資料集合的全排列

排序實現歸併排序、快速排序、插入排序、氣泡排序、選擇排序

程式設計實現o(n)時間複雜度內找到一組資料的第k大元素

二分查詢

實現乙個有序陣列的二分查詢演算法

實現模糊二分查詢演算法(比如大於等於給定值的第乙個元素)

雜湊表實現乙個基於鍊錶法解決衝突問題的雜湊表

實現乙個lru快取淘汰演算法

字串實現乙個字符集,只包含a~z這26個英文本母的trie樹

實現樸素的字串匹配演算法

二叉樹實現乙個二叉查詢樹,並且支援插入、刪除、查詢操作

實現查詢二叉查詢樹中某個節點的後繼、前驅節點

實現二叉樹前、中、後序以及按層遍歷

堆實現乙個小頂堆、大頂堆、優先順序佇列

實現堆排序

利用優先順序佇列合併k個有序陣列

求一組動態資料集合的最大top k

圖實現有向圖、無向圖、有權圖、無權圖的鄰接矩陣和鄰接表表示方法

實現圖的深度優先搜尋、廣度優先搜尋

實現dijkstra演算法、a*演算法

實現拓撲排序的kahn演算法、dfs演算法

回溯利用回溯演算法求解八皇后問題

利用回溯演算法求解0-1揹包問題

分治利用分治演算法求一組資料的逆序對個數

動態規劃

0-1揹包問題

最小路徑和

程式設計實現萊文斯坦最短編輯距離

程式設計實現查詢兩個字串的最長公共子串行

程式設計實現乙個資料序列的最長遞增子串行

資料結構必會演算法

2.2順序表插入 順序表儲存結構 define maxsize 100 typedef structlist define ok 1 define error 0 在順序表l中第i個資料元素之前插入乙個元素e。i的合法取值範圍1 i last 2 int inslist list l,int i,t...

資料結構入門必知(一)

資料元素 不同的情況下,又稱為元素 結點 頂點 記錄 資料元素師資料的基本單位 資料項 資料項資料不可分割的最小單位 乙個資料元素可以由乙個或多個資料項組成。以某銀行網上銀行使用者來說明資料 資料元素 資料項三者之間的關係 網上銀行的所有使用者的所有資訊的總和稱為資料,所有使用者中的乙個使用者的所有...

資料結構入門必知(二)

為了讓計算機更方便的為我們服務,我們需要把現實中的一切事物資料化,然後存放到計算機中,因為現實中的事物和事物之間存在的某種關係,所以我們要研究這些關係 在計算機世界存在的形式和在現實世紀中存在的形式 也就是我們要研究資料結構中的邏輯結構 現實世界中關係存在的幾種方式 和物理結構 計算機世界中關係存在...