![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
Lemonade
这个作者很懒,什么都没留下…
展开
-
线性表的顺序结构及实现
基于顺序结构的线性表1.线性表:零个或多个数据元素的有限序列 序列:有序性 有限:有长度的限定,无限的概念只存在于数学中 2.线性表的顺序存储结构:用一段连续的存储单元地址依次存储线性表的数据元素 连续的存储单元 ,依次(有序)原理 1. 由 list<E> 接口实现 为什么要定义成一个接口 List可由顺序结构或链表结构实现,是一个抽象类,类中方法...原创 2019-09-09 20:27:20 · 490 阅读 · 0 评论 -
循环链表
循环链表定义将单链表中终端结点的指针端由空指针指向头结点,使整个单链表形成头尾相连的环,简称循环链表。单链表与循环链表的主要差别在于,循环的判断条件上,原来是p.next是否空,现在是p.next是否为头结点。1.若将头指针作为循环链表的指针,则查询第一个结点的时间复杂度为O(1),尾结点为O(n)2.若将尾针作为循环链表的指针,则查询第一个结点的时间复杂度为O(1),尾结点为...原创 2019-09-17 23:21:31 · 298 阅读 · 0 评论 -
队列的链式结构与实现
队列的链式结构1.就是单向链表,只不过只能头出尾进,简称为链队列2.为了操作方便,将队头指向头结点,队尾指向尾结点3.操作与链表一致,使用链表的frist元素,与last元素进行操作基本方法public class LinkedQueue<E> implements Queue<E>{ private LinkedList<E> list; pu...原创 2019-09-17 17:44:02 · 130 阅读 · 0 评论 -
栈的链式结构及实现
链栈1.是一个栈,栈顶进出元素,单链表有头指针,栈顶也有指针,将它们的指针合二为一,将栈顶放在单链表的头部比较合适。2.单链表的头结点链栈不需要进栈栈顶在头部相当于对头添加元素public void push(E e) { list.addFirst(e); //头插法插入一个元素 }出栈栈顶在头部,对一个头元素进行删除public E pop() { ret...原创 2019-09-17 17:30:55 · 150 阅读 · 0 评论 -
线性表的链表结构及实现
链表的定义1为了表示每个元素a(i)与其直接后继数据元素a(i+1)之间的逻辑关系,对数据元素a(i)来 说,除了存储其本身的信息之外,还需要存储一个指示其直接后继的信息数据域,存储数据元素信息的域指针域,存储直接后继位置的域,指针域中信息称为指针或链指针域与数据域组成节点Noden个结点链结成一个链表,若此链表中每个结点中只包含一个指针域,则为单链表(一个方向)...原创 2019-09-15 00:40:32 · 157 阅读 · 0 评论 -
循环队列的顺序结构及实现
循环队列队列的头尾相连的顺序结构称为循环队列1. 为何有循环队列队列的不足每次在队尾插入元素的时候插入位置前面的元素都得向前一位时间复杂度为O(n),每次插入都得移动2.解决办法不去移动元素,而去移动元素所在下标,将队列目前第一个元素所在角标作为队首定义头指针front,与尾指针rear去进行移动初始条件头尾指针都位于0处,插入时rear指针向后移动,出队时front...原创 2019-09-12 00:49:21 · 1037 阅读 · 0 评论 -
队列的顺序结构及实现
队列队列(queue):只允许在一端进行插入操作,在另一端进行删除操作的线性表是一种先进先出的线性表,允许插入的一端称为队尾,允许删除的一端为队首是一种特殊的线性表:存在顺序结构与链表结构的实现在队首出队可看为对线性表的First进行操作在队尾入队可看为对线性表的Last进行操作所以变得简单了就是用Arraylist的First与last元素进行操作队列接口的定义pac...原创 2019-09-10 16:42:52 · 467 阅读 · 0 评论 -
栈的两栈共享空间结构的实现
两栈共享空间结构本质就是两个ArrayStack尾部相接top1为左栈栈顶 开始于-1 = leftToptop2为右栈栈顶 开始于data.lenght = rightTop构造方法public class ArrayListDoubleEnd<E> implements Stack<E> { enum Direction{ //定义枚举类型 左右...原创 2019-09-10 01:03:02 · 313 阅读 · 0 评论 -
栈的顺序存储结构及实现
栈(stack)定义:仅在表尾进行插入和删除的线性表 1.是一个线性表,具有线性表的基本特征 2.先进后出 3.允许插入删除的一段为栈顶,且只在栈顶进行操作 4.插入操作叫做进栈,也称压栈,入栈 //弹夹模型 5.删除操作较出栈,也称弹栈 栈的接口定义public interface Stack<E> { /** * 获取栈中的元素个数 * @retu...原创 2019-09-09 23:13:13 · 219 阅读 · 0 评论 -
数据结构与算法的基本概念
数据数据的基本概念原创 2019-09-09 18:36:33 · 277 阅读 · 1 评论 -
递归
定义1.把一个直接调用自己的或通过一系列的调用语句间接的调用自己的函数称为递归函数。2.写递归最怕的就是陷入无限的循环中,所以递归函数必须至少有一个条件,满足递归不再进行,即不在引用自身而是返回值退出3.我们在写递归函数时最好先写结束条件。用处:将大型复杂问题化解为若干小问题进行求解好处:代码量减少弊端:占空间,函数是基于栈内存来运行的要素:前进段,边界条件,返回段递归的应用案列...原创 2019-09-23 20:07:34 · 117 阅读 · 0 评论