数据结构笔记整理
来源:互联网 发布:sql server2008安装包 编辑:程序博客网 时间:2024/06/04 06:23
数据结构:链表,数组,堆栈,队列,二叉树,哈希表,图,几个排序算法
问题1:java中arraylist如何实现:一个可以随机访问,自动增加容量的数组,怎么搞出来的?
问题2:如何用栈实现计算算术表达式。
问题3: 辗转相除法
数据结构除了数组之外都可以认为是抽象数据结构(ADT)
1.数组:
--无序数组:插入快,查找慢,删除慢
--有序数组:查找比无序快(二分),插入慢,删除慢
(有序无序如果知道下标,那查找快,可以直接通过下标访问)
二分查找:前提是有序数组(可以用递归实现,也可以不用)
大O表示法
2.简单排序(冒泡排序,快速排序,归并排序,堆排序) 时间复杂度 ,空间复杂度,稳定性
--冒泡排序(n-1轮,最大的数据行总是'冒泡到数组的顶端')
--堆排序
(1)建立堆(大顶):从最后一个非叶节点开始
(2)调整堆
3栈和队列
栈实现队列。
栈实现算数表达式求值。java中栈利用后缀表达式的方式实现。
4链表
5.二叉树
删除节点(两个子节点的情况):用它的中序后继节点代替(例子:霍夫曼树)
6.红黑树
--定义:红黑树是特殊的二叉查找树,任意一个节点包含的键值,大于等于左孩子的键值,小于等于右孩子的键值。此外,每个节点都有存储位表示节点的颜色,颜色是红或者黑。
7.哈希表
--定义:哈希表是一个在时间和空间上做出权衡的经典例子。
1.图
(1) 存储结构。
--邻接矩阵。
邻接矩阵存储方法采用N*N矩阵(N代表图节点的个数)。
适用情况:矩阵是稠密的矩阵(比如图是完全图时)
--邻接表。
每一个结点后面所接的结点都是它的邻接结点。
适用情况:稀疏矩阵,更节省空间的存储结构。
(2)图的遍历。
---广度优先。类似于一个分层搜索的过程,广度优先遍历使用队列来保持访问过的结点的顺序,按这个顺序来访问这些结点的邻接结点。(横向挖掘)
---深度优先。每次都在访问完当前结点后首先访问当前结点的第一个结点。(纵向挖掘)采用递归实现。
6.nginx负载均衡
7.KMP算法
8.JVM
11设计模式
- 数据结构 整理笔记
- 数据结构笔记整理12.3
- 数据结构 第一章笔记整理
- 数据结构笔记整理
- sk_buff 整理笔记(一、数据结构)
- sk_buff 整理笔记(一、数据结构)
- 浙大公开课-数据结构-排序-笔记整理
- 数据结构笔记整理第1章:绪论
- 数据结构笔记整理第6章:图
- 数据结构笔记整理第7章:排序
- 数据结构笔记整理第8章:查找
- 【数据结构】图论算法笔记整理
- [笔记整理]待补充的数据结构
- 数据结构整理
- 数据结构(c++版)笔记整理——第一章
- 数据结构(C++版)笔记整理——第二章
- 数据结构(C++版)笔记整理——第三章
- 数据结构(C++版)笔记整理——第四章
- iOS 加载xib tableViewCell
- C++的list使用方法
- UIButton的的各种非常见用法
- 在iOS7之后,苹果会自动给导航控制器里面的所有UIScrollView顶部都会添加额外的滚动区域64.
- bzoj1040(图论+树形dp
- 数据结构笔记整理
- 拦截短信 中断发送短信
- H.264 NAL层解析(0x00000001,编码,打包,NALU)
- cs229 机器学习
- 生成mybatis文件
- PHP编程效率的20个要点
- Unity3D中Enabled、Destroy与Active的区别
- 苹果iPhone 7价格差很多,谨慎购买!
- 判断user 是否开启 delve 功能