Algorithm:【Algorithm算法进阶之路】之数据结构二十多种算法演示
Algorithm:【Algorithm算法進階之路】之數據結構二十多種算法演示
?
?
目錄
一、數據結構算法
1、順序表
2、鏈表
3、棧和隊列
4、串的模式匹配
5、稀疏矩陣
6、廣義表
7、二叉樹
8、圖
9、存儲管理???
10、靜態查找
11、動態查找
12、內部排序
13、外部排序
?
?
相關文章
Algorithm:【Algorithm算法進階之路】之數據結構二十多種算法演示
Algorithm:【Algorithm算法進階之路】之十大經典排序算法
Algorithm:【Algorithm算法進階之路】之數據結構基礎知識
Algorithm:【Algorithm算法進階之路】之數據結構相關習題(數組、字符串、鏈表、棧、隊列、樹、圖、哈希)
Algorithm:【Algorithm算法進階之路】之算法中的數學編程(時間速度、進制轉換、排列組合、條件概率、斐波那契數列)相關習題
Algorithm:【Algorithm算法進階之路】之算法(查找、排序、遞歸、復雜度、高級算法)相關習題
Algorithm:【Algorithm算法進階之路】之機器學習相關習題
Algorithm:【Algorithm算法進階之路】之Python語言相關習題
?
?
備注:數據結構算法演示軟件,來自鄒老師所發資料
?
一、數據結構算法
本系統內含84個算法,分屬13部分內容,由主菜單顯示,與《數據結構》教科書中自第2章至第11章中相對應。各部分演示算法如下:
1、順序表
(1)在順序表中插入一個數據元素(ins_sqlist)
(2)刪除順序表中一個數據元素(del_sqlist)
(3)合并兩個有序順序表(merge_sqlist)
?
2、鏈表
(1)創建一個單鏈表(Crt_LinkList)
(2)在單鏈表中插入一個結點(Ins_LinkList)
(3)刪除單鏈表中的一個結點(Del_LinkList)
(4)兩個有序鏈表求并(Union)
(5)歸并兩個有序鏈表(MergeList_L)
(6)兩個有序鏈表求交(ListIntersection_L)
(7)兩個有序鏈表求差(SubList_L)
?
3、棧和隊列
(1)計算阿克曼函數(AckMan)
(2)棧的輸出序列(Gen、Perform)
(3)遞歸算法的演示
- 漢諾塔的算法(Hanoi)
- 解皇后問題的算法(Queen)
- 解迷宮的算法(Maze)
- 解背包問題的算法(Knap)
?(4)模擬銀行(BankSimulation)
?(5)表達式求值(Exp_reduced)
?
4、串的模式匹配
???????(1)古典算法(Index_BF)
???????(2)求Next 函數值(Get_next)和按Next 函數值進行匹配 (Index_KMP(next))
???????(3)求?Next 修正值(Get_nextval)和按?Next 修正值進行匹配(Index_KMP(nextval))
?
5、稀疏矩陣
? ? ? ?(1)矩陣轉置?(Trans_Sparmat)
???????(2)快速矩陣轉置?(Fast_Transpos)
???????(3)矩陣乘法?(Multiply_Sparmat)
?
6、廣義表
? (1)求廣義表的深度(Ls_Depth)
????(2)復制廣義表(Ls_Copy)
??(3)創建廣義表的存儲結構(Crt_Lists)
?
7、二叉樹
? ? ? ? (1)遍歷二叉樹
- 二叉樹的線索化
- 先序遍歷(Pre_order)
- 中序遍歷(In_order)
- 后序遍歷(Post_order)
????????(2) 按先序建二叉樹(CrtBT_PreOdr)
? ? ? ? (3) 線索二叉樹
- ?二叉樹的線索化
? ? ? ? ? ? ? ? ? 生成先序線索(前驅或后繼) (Pre_thre)
? ? ? ? ? ? ? ? ? 中序線索(前驅或后繼) (In_thre)
? ? ? ? ? ? ? ? ? 后序線索(前驅或后繼) (Post_thre)
- 遍歷中序線索二叉樹(Inorder_thlinked)
- 中序線索樹的插入(ins_lchild_inthr)和刪除(del_lchild_inthr)結點
???????(4)建赫夫曼樹和求赫夫曼編碼(HuffmanCoding)
???????(5)森林轉化成二叉樹(Forest2BT)
???????(6)二叉樹轉化成森林(BT2Forest)
???????(7)按表達式建樹(ExpTree)并求值(CalExpTreeByPostOrderTrav)
?
?
8、圖
???(1)圖的遍歷
- 深度優先搜索(Travel_DFS)
- 廣度優先搜索(Travel_BFS)
???????(2)求有向圖的強連通分量(Strong_comp)
???????(3)有向無環圖的兩個算法
- 拓撲排序(Toposort)
- 關鍵路徑(Critical_path)
???????(4)求最小生成樹
- 普里姆算法(Prim)
- 克魯斯卡爾算法(Kruscal)
???????(5)求關節點和重連通分量(Get_artical)
???????(6)求最短路徑
- 弗洛伊德算法(shortpath_Floyd)
- 迪杰斯特拉算法(shortpath_DIJ)
?
9、存儲管理???
? ? ? ?(1)邊界標識法?(Boundary_tag_method)
???????(2)伙伴系統?(Buddy_system)
???????(3)緊縮無用單元?(Storage_compaction)
?
?
10、靜態查找
? ? ? ?(1)順序查找(Search_Seq)
???????(2)折半查找 (Serch_Bin)
???????(3)插值查找?(Search_Ins)
???????(4)斐波那契查找 (Search_Fib)
???????(5)次優查找樹(BiTree_SOSTree)
11、動態查找
? ? ? ?(1)在二叉排序樹上進行查找(bstsrch)、插入結點(ins_bstree)和刪除結點(del_bstree)
???????(2)在二叉平衡樹上插入結點(ins_AVLtree) 和刪除結點(del_AVLtree)
???????(3)在?B-樹上插入結點(Ins_BTree)?和 刪除結點(Del_BTree)
???????(4)在?B+樹上插入結點(Ins_PBTree)?和 刪除結點(Del_PBTree)
?
12、內部排序
(1)簡單排序法
- 直接插入排序(Insert_sort)
- 表插入排序(內含插入(Ins_Tsort) ?重排(Arrange)兩個算法)
- 起泡排序(BubbleSort)?
- 簡單選擇排序(SelectSort)
(2)復雜排序法
- 堆排序(HeapSort)
- 快速排序(QuickSort)
- 錦標賽排序(Tournament)?
(3)其他
- 快速地址排序(QkAddrst)
- 基數排序(RadixSort)
- ?
13、外部排序
(1)多路平衡歸并排序(K-Merge)
(2)置換-選擇排序(Repl_Selection)
?
?
?
?
?
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Algorithm:【Algorithm算法进阶之路】之数据结构二十多种算法演示的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Algorithm:C++语言实现之概率
- 下一篇: ML:推荐给小白入门机器学习一系列书籍