/DataStructure-AlgorithmAnalysis

The data structure implementation in C

Primary LanguageC

数据结构-- C 实现(持续更新)

本人学习数据结构期间的练习代码,部分参考了《数据结构与算法分析--C语言描述》 第 2 版和网上各类博客中的代码。

P 表示 Practice

  • 顺序表 (Vector/SequenceList)

    • P: 循环移动、约瑟夫问题
  • 最大连续子序列求和算法简单分析(O(N^3)、O(N^2)、O(N))(Max subsequence)

  • 链表(LinkedList)

    • 单链表(LinkedList)
      • P: 单链表--多项式运算(加法、减法、乘法、求导)
    • 双向循环链表(DlinkedList)
  • 栈(Stack)

    • 数组实现
      • P: 迷宫求解、括号匹配
    • 链表实现
  • 队列(Queue)

    • 数组实现
    • 链表实现
  • 字符串匹配(注释中的算法实现待更新......)

    • Brute Force
    • KMP
  • 树(Tree)

    • 二叉树(Binary Tree)
      • 递归先序、中序、后序遍历
      • 非递归的先序、后序、中序遍历
    • 广度优先搜索、深度优先搜索
    • 二叉搜索树(Binary Search Tree)的操作(创建、查找、插入、删除)
    • 表达式树(Expression Tree)--从后缀表达式转化成表达式树
  • 堆(Heap)

    • 优先队列(Priority Queue)(数组实现)
      • 构建堆、删除、插入、增加/减少 key 值、上/下滤、寻找最小值、删除最小值...
  • 图(Graph)

    • 最短路径算法(Dijkstra algorithm)
  • 排序(Sort)

    • 比较排序(Comparison Sorting)
      • 插入排序(Insertion sort)
      • 希尔排序(Shell sort)
      • 归并排序(Merge sort)
      • 快速排序(Quick sort)
      • 冒泡排序(Bubble sort)
      • 选择排序(Selection sort)
    • 计数排序(Counting sort)
    • 堆排序(Heap sort)
    • 基数排序(Radix sort)
      • LSD
      • MSD(Incomplete)