JAVA-数据结构与算法

750 阅读1分钟

写在前面

  • 数据结构,研究组织数据的方式
  • 程序 = 数据结构 + 算法

结构

线性结构

  • 数据元素之间存在一对一的线性关系
  • 顺序存储方式,顺序表,表中的存储元素是连续的
  • 链式存储方式,链表,表中的存储元素不一定是连续的,节点中存放数据元素以及相邻元素的地址信息
  • 数组、队列、链表、栈

非线性结构

  • 二维数组,多维数组,广义表,树结构,图结构

算法

稀疏数组和队列

单链表和单向环形链表

双向链表和栈

栈的三种表达式

递归

复杂度和排序算法

查找算法

哈希表

树结构

堆排序和赫夫曼树

二叉排序树

平衡二叉树(AVL树)和多路查找树(介绍)

二分查找算法、汉诺塔(分治算法)和背包问题(动态规划)

字符串匹配问题(KMP算法)和集合覆盖问题(贪心算法)

修路问题(普里姆算法)和公交站问题(克鲁斯卡尔算法)

最短路径问题(迪杰斯特拉算法和弗洛伊德算法)

骑士周游问题(马踏棋盘)