本人学习数据结构期间的练习代码,部分参考了《数据结构与算法分析--C语言描述》 第 2 版和网上各类博客中的代码。
P 表示 Practice
-
- P: 循环移动、约瑟夫问题
-
最大连续子序列求和算法简单分析(O(N^3)、O(N^2)、O(N))(Max subsequence)
-
- 单链表(LinkedList)
- P: 单链表--多项式运算(加法、减法、乘法、求导)
- 双向循环链表(DlinkedList)
- 单链表(LinkedList)
-
- 数组实现
- P: 迷宫求解、括号匹配
- 链表实现
- 数组实现
-
- 数组实现
- 链表实现
-
字符串匹配(注释中的算法实现待更新......)
- Brute Force
- KMP
-
- 二叉树(Binary Tree)
- 递归先序、中序、后序遍历
- 非递归的先序、后序、中序遍历
- 广度优先搜索、深度优先搜索
- 二叉搜索树(Binary Search Tree)的操作(创建、查找、插入、删除)
- 表达式树(Expression Tree)--从后缀表达式转化成表达式树
- 二叉树(Binary Tree)
-
- 优先队列(Priority Queue)(数组实现)
- 构建堆、删除、插入、增加/减少 key 值、上/下滤、寻找最小值、删除最小值...
- 优先队列(Priority Queue)(数组实现)
-
- 最短路径算法(Dijkstra algorithm)
-
- 比较排序(Comparison Sorting)
- 插入排序(Insertion sort)
- 希尔排序(Shell sort)
- 归并排序(Merge sort)
- 快速排序(Quick sort)
- 冒泡排序(Bubble sort)
- 选择排序(Selection sort)
- 计数排序(Counting sort)
- 堆排序(Heap sort)
- 基数排序(Radix sort)
- LSD
- MSD(Incomplete)
- 比较排序(Comparison Sorting)