Java数据结构与算法(一、初识数据结构与算法)

1. 经典的算法面试题介绍

经典的面试题 解决的算法
字符串匹配 KMP算法
汉罗塔游戏 分治算法
八皇后问题 回溯算法
马踏棋盘 图的深度优化+贪心算法
其他常见问题:
1. 五子棋存档问题  =>  稀疏数组【数据结构】
2. 约瑟夫问题    =>  单向环形链表【数据结构】
3. 修路问题     =>  最小生成树(加权值)【数据结构】+ 普利姆算法
4. 最短路径问题   =>  图【数据结构】 + 费罗伊德算法
5. 汉罗塔      =>  递归【数据结构】 + 分治算法
6. 八皇后问题    =>  递归【数据结构】 + 回溯算法


2. 数据结构和算法的关系

程序 = 数据结构 + 算法
数据结构是算法的基础,算法是程序的灵魂


3. 数据结构的分类

种类 常用结构
线性 (4种) 数组 队列 链表
非线性 (5种) 二维数组 多维数组 广义表 树结构 图结构
线性结构:
1)线性结构作为最常用的数据结构,其特点是数据之间存在 一对一 的线性关系。
2)线性结构有两种不同的存储结构,即 顺序存储结构链式存储结构。顺序存储的线性表成为顺序表,顺序表中的存储元素是连续的。
3)链式存储的线性表成为链表,链表中的存储元素不一定是连续性的,元素节点中存放数据元素以及相邻元素的地址信息。
4)线性结构常见的有: 数组队列链表、和

非线性结构:
非线性结构包括: 二维数组多维数组广义表树结构图结构

你可能感兴趣的:(Java数据结构与算法(一、初识数据结构与算法))