- 博客(5)
- 收藏
- 关注
原创 数据结构与算法第(5)讲-关于栈及其应用
栈是限定仅在表尾进行插入和删除操作的线性表。允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈。栈又称为后进先出的线性表。栈的实现有三种方式:1.顺序方式;2.链式方式;3.逆波兰表达式。我们常用的为顺序方式,比如java源码的Stack类,逆波兰表达式是我们用四则运算时经常用到的,我们所说的四则运算比如:1+3x8-2/1 其实是一种中缀表达式,...
2018-12-26 11:18:18
121
原创 数据结构与算法第(4)讲-一步步带你手写链表
前面我们讲过,链表是一种很好的数据存储方式,对于数据的插入和删除效率都很高,一般我们常用的是jdk里的链表,很多人用的虽多,却不一定都熟悉具体的写法和逻辑,而且jdk为了兼容性更好,难免在效率上进行妥协,如果你对性能有很高的要求,不妨根据自己的需求去手动实现一个链表。 第一步:首先创建一个节点内部类 /** * 节点 */ private static cla...
2018-12-26 10:21:40
137
原创 数据结构与算法第(3)讲-递归基础
程序调用自身的编程技巧称为递归(recursion)。递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。 一般来说,递归需要有边界...
2018-12-24 15:03:47
113
原创 数据结构与算法第(2)讲-线性表和排序
线性表是很常见数据结构表的一种,一般又细分为顺序存储和链式存储,前者是以一个连续空间来存储数据,而后者则是用节点来存储数据。 顺序表是有前驱和后驱,我们可以这样描述,a1是a2的前驱,ai+1 是ai的后继,a1没有前驱,an没有后继 n为线性表的长度 ,若n==0时,线性表为空表。优点:尾插效率高,支持随机访问。缺点:中间插入或者删除效率低。 比如常用的数组和ArrayList。 链表是由一...
2018-12-24 14:40:37
265
原创 数据结构与算法第(1)讲-入门篇
一.数据结构与算法概念 数据结构是计算机存储、组织数据的方式;是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间...
2018-12-21 17:44:43
170
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人