摘要:
图就是顶点和边的集合。通常用邻接表(邻接链)表示。 线性主要从查找和删除上初步接触差异和效率。 树主要概念在于递归,抽象建模。 而图在抽象建模的层次上更进一层,主要是抓住图的多对多的根本特征,把多点看成一点,把新入点的边算进来,算成一个超级大点。刚开始会不容易懂。但是明白之后,比特殊的树简单多了。 package com.linson.datastrcture; import java.u... 阅读全文
摘要:
树代表的是层级关系,一对多的关系。 二叉树是稳定的结构,并且孩子兄弟法是一种用二叉树的结构来描述任何形状树的方法。所以二叉树是最常使用的树结构。 树最常用的情况就是, 1.表示现实中的层级关系, 2.采用树这种天然分叉的存储结构来降低搜索成本,如左大右小,把线性结构搜索的n周期。立马减少到log2。 阅读全文
摘要:
arraylist 的内存结构是这样。 为什么会这样,是因为java库中数组的内存布局就已经成这样了 代码: 测试代码: 链表代码及其测试代码 注意点 栈 组合链表实现。 队列 ,组合链表实现。 阅读全文
摘要:
数据结构和算法总览 一。大部分问题抽象其数据类型,可分为三种。 抽象出3种数据模型,并研究这3种模型的存储及常用操作,对于解决问题有很大帮助。而且有个重要一点就是让程序员交流起来更顺畅,代码都是推荐的那个套路,减低bug和提高效率。 1.线性关系(可表示1对1关系模型, 天然存在于数据本身就是一个挨 阅读全文