Java版数据结构学习大纲
1. 数据结构概述
1.1. 什么是数据结构?
数据结构是计算机存储,组织数据的方式。
1.2. 数据的存储结构?
例1:顺序存储结构,按顺序存储数据,[a1,a2.......a3.a4] 例2:链式存储结构,存储自身值之外,并且携带下一位数据的地址,[{'a1','a2的地址'},{'a2','a3的地址'}]
1.3. 数据的逻辑结构?
线性结构,树形结构,图形结构。
2. 算法概述
2.1 算法的定义
解决问题的思路
2.2 算法的特性
输入,输出(至少一个),有穷性(有限的执行时间),确定性(种瓜得瓜种豆得豆),可行性
2.3 基本要求
正确性,可读性,健壮性,时间复杂度(占用时间的长短),空间复杂度(使用空间的大小)。
3. 线形结构
3.1 数组(Array)
数组的基本使用数组仿写ArrayList查找算法-二分法【笔记及代码位置】
3.2 栈(Stack)
使用数组实现栈结构【笔记及代码位置】
3.3 队列(Queue)
使用数组实现队列【笔记及代码位置】
3.4 链表(LinkedList)
创建Node类实现单链表改写单链表实现循环链表改写单链表实现双向循环链表递归实现斐波那契递归实现汉诺塔问题【笔记及代码位置】
4. 树形结构
4.1 树的特征及二叉树(Binary tree)
树形结构的概念及二叉树二叉树的遍历二叉树节点的查找 【笔记及代码位置】
......