
2026考研数据结构代码题 - 基础 63 题(带注释版)
目錄
順序表
- 1. 在順序表 L 的第 k 個位置插入元素 x【增】
- 2. 刪除順序表 L 的第 k 個元素並返回其值【刪一】
- 3. 將順序表中的元素逆置【改:經典逆置】
- 4. 查找順序表中第一個值為 x 的元素的位置【查】
- 5. 順序表遞增有序,插入元素 x,仍保持遞增有序【查+增】
- 6. 用順序表最後一個元素覆蓋整個順序表中最小元素(若有多個則選取第一個),並返回該最小元素【查+改】
- 7. 刪除順序表中第一個值為 x 的元素【查+刪一】
- 8. 刪除順序表中所有值為 x 的元素(拓展:刪除給定值在 s 到 t 之間的所有元素)【查+刪多】
鏈表
- 1. 分別採用頭插法和尾插法建立一個帶頭結點的單鏈表
- 2. 帶頭結點遞增有序單鏈表插入新結點保持有序
- 3. 帶頭結點單鏈表就地逆置(O(1) 空間)
- 4. 刪除帶頭結點單鏈表中第一個值為 x 的結點
- 5. 刪除帶頭結點單鏈表中所有值為 x 的結點
- 6. 刪除帶頭結點單鏈表最小值結點
- 7. 遞增有序輸出單鏈表並釋放結點空間
- 8. 將最小值結點移動到鏈表最前端
- 9. 無序單鏈表實現:找最小值、奇偶判斷交換或刪除
- 10. 頭插法與尾插法建立雙向鏈表
- 11. 將雙向鏈表最小值移到最前端
- 12. 循環單鏈表反覆輸出最小值並刪除直到空
棧與隊列
- 1. 棧的基本操作
- 2. 判斷單鏈表是否回文
- 3. 判斷括號匹配
- 4. 將字元 S 提到 H 之前
- 5. 共享棧實現 s1、s2 入棧出棧
- 6. 隊列的基本操作
- 7. 循環單鏈表實現隊列入隊出隊
- 8. 兩個棧模擬一個隊列
- 9. 判斷字串是否回文
- 10. 子串匹配
- 11. 判斷鏈表 B 是否為鏈表 A 的連續子序列
樹
- 1. 先序、中序、後序遞歸遍歷二叉樹
- 2. 計算二叉樹結點個數
- 3. 計算葉子結點個數
- 4. 求值為 x 的層號
- 5. 計算二叉樹最大深度
- 6. 找出值最大的結點
- 7. 查找 data 域等於 key 的結點
- 8. 輸出先序第 k 個結點
- 9. 左右子樹交換
- 10. 判斷是否正則二叉樹
- 11. 先序非遞歸遍歷
- 12. 中序非遞歸遍歷
- 13. 後序非遞歸遍歷
- 14. 層次遍歷
圖
- 1. 鄰接表與鄰接矩陣創建圖
- 2. 鄰接表實現 BFS
- 3. 鄰接矩陣實現 BFS
- 4. 求距離頂點 v 最遠的結點
- 5. 鄰接表實現 DFS
- 6. 鄰接矩陣實現 DFS
- 7. 判斷 Vi 到 Vj 是否存在路徑
- 8. 輸出所有根結點
- 9. 求無向圖連通分量個數
查找
排序
順序表
順序表默認結構體
1 |
|
1. 在順序表 L 的第 k 個位置插入元素 x【增】
1 | bool insert_L(Sqlist *L, int k, int x) { |
核心思想
- 检查参数合法性
- 元素后移
- 插入元素并更新长度
2. 刪除順序表 L 的第 k 個元素並返回其值【刪一】
3. 將順序表中的元素逆置【改:經典逆置】
4. 查找順序表中第一個值為 x 的元素的位置【查】
5. 順序表遞增有序,插入元素 x,仍保持遞增有序【查+增】
6. 用順序表最後一個元素覆蓋整個順序表中最小元素(若有多個則選取第一個),並返回該最小元素【查+改】
7. 刪除順序表中第一個值為 x 的元素【查+刪一】
8. 刪除順序表中所有值為 x 的元素(拓展:刪除給定值在 s 到 t 之間的所有元素)【查+刪多】
鏈表
單鏈表默認結構體
1 | typedef struct LNode { |
核心思想
初始化头结点
读入数据直到结束标志
尾插法依次插入结点
1. 分別採用頭插法和尾插法建立一個帶頭結點的單鏈表
2. 帶頭結點遞增有序單鏈表插入新結點保持有序
3. 帶頭結點單鏈表就地逆置(O(1) 空間)
4. 刪除帶頭結點單鏈表中第一個值為 x 的結點
5. 刪除帶頭結點單鏈表中所有值為 x 的結點
6. 刪除帶頭結點單鏈表最小值結點
7. 遞增有序輸出單鏈表並釋放結點空間
8. 將最小值結點移動到鏈表最前端
9. 無序單鏈表實現:找最小值、奇偶判斷交換或刪除
10. 頭插法與尾插法建立雙向鏈表
11. 將雙向鏈表最小值移到最前端
12. 循環單鏈表反覆輸出最小值並刪除直到空
棧與隊列
1. 棧的基本操作
2. 判斷單鏈表是否回文
3. 判斷括號匹配
4. 將字元 S 提到 H 之前
5. 共享棧實現 s1、s2 入棧出棧
6. 隊列的基本操作
7. 循環單鏈表實現隊列入隊出隊
8. 兩個棧模擬一個隊列
9. 判斷字串是否回文
10. 子串匹配
11. 判斷鏈表 B 是否為鏈表 A 的連續子序列
樹
1. 先序、中序、後序遞歸遍歷二叉樹
2. 計算二叉樹結點個數
3. 計算葉子結點個數
4. 求值為 x 的層號
5. 計算二叉樹最大深度
6. 找出值最大的結點
7. 查找 data 域等於 key 的結點
8. 輸出先序第 k 個結點
9. 左右子樹交換
10. 判斷是否正則二叉樹
11. 先序非遞歸遍歷
12. 中序非遞歸遍歷
13. 後序非遞歸遍歷
14. 層次遍歷
圖
1. 鄰接表與鄰接矩陣創建圖
2. 鄰接表實現 BFS
3. 鄰接矩陣實現 BFS
4. 求距離頂點 v 最遠的結點
5. 鄰接表實現 DFS
6. 鄰接矩陣實現 DFS
7. 判斷 Vi 到 Vj 是否存在路徑
8. 輸出所有根結點
9. 求無向圖連通分量個數
查找
1. 二分查找
2. 判斷是否二叉排序樹
3. 尋找最大最小結點
4. 求值為 key 的層次
排序
1. 直接插入排序
2. 折半插入排序
3. 選擇排序
4. 冒泡排序
5. 快速排序
- 感谢您的赞赏
讚賞名單
由于您的支持,我才能够实现写作的价值。
本文是原創文章,採用CC BY-NC-SA 4.0協議,完整轉載請註明來自Aldebaran
評論 ()