数据结构与算法
码农Academy
码农Academy,专注分享Java技术干货,包括Java基础、Spring Boot、Spring Cloud、Mysql、Redis、Elasticsearch、中间件、架构设计、面试题、程序员攻略等。
展开
-
常用数据结构
1、数组(Array) 数组是一种聚合数据类型,是将具有相同类型的若干变量有序的组织在一起的集合。数组可以分为整形数组、字符型数组、浮点型数组、对象型数组等。数组还可以有一维,二维数组、多维第表现形式。 2、栈(Stack) 栈是一种特殊的线性表,其中能在一个表的一个固定端进行数据结点的插入和删除操作。栈按照后进先出的原则来存储数据,先插入的数据将被压入栈底,最后插入的数据原创 2017-03-05 21:33:19 · 318 阅读 · 0 评论 -
数据结构之顺序表
顺序表就是按照顺序存储方式存储的线性表,该线性表的结点按照逻辑次序一次存放在计算机的一组连续的存储单元中如下图: 由于顺序表是一次存放的,只要知道了该顺序表的首地址以及每个数据元素所占用的存储长度,那么我们就很容易计算出任何一个数据元素(也就是数据系结点)的位置。 1、结点数据类型:public class MySeqNode { String key; //关键字 S原创 2017-03-30 12:44:09 · 2433 阅读 · 0 评论 -
数据结构之单链表
由于顺序表再插入或者删除时需要移动大量数据,并且如果表比较大, 会比较难分配连续的存储空间导致存储数据失败。因此可以采用链表结构,链表结构是一种动态存储分配的结构形式,可以根据需要动态的申请所需的存储单元。 链表又分为单链表,双向链表,以及单循环链表,多重链的循环链表。本文先介绍单链表。 典型的单链表结构如图所示: 链表每个结点都应包括如下内容:数据部分,保存的是该结点的实际数据。原创 2017-03-31 23:59:46 · 838 阅读 · 0 评论 -
数据结构之双向链表
双向链表,每个节点除了保存了对下一个节点的引用,同时还保存这对前一个节点的引用。 其结点跟单链表相似,如图所示: 设计双向链表的操作: 1、结点数据:/** * 链表节点,相当于火车的车厢 * @author Administrator * */public class MyNode { //数据域 public long data; //指针域 pub原创 2017-04-11 17:47:48 · 283 阅读 · 0 评论 -
汉诺塔问题
import java.util.Scanner;/** * 汉诺塔问题 * 不考虑中转,只考虑起始柱子到目标柱子的移动 * 记住始终一点:中间一个不管是啥柱子,都是中转,盘子移动只发生在起始到目标柱子 * @author Administrator * */public class HanoiTest { private static long count=0; @Sup原创 2017-03-17 01:04:11 · 262 阅读 · 0 评论 -
数据结构之双向链表
双向链表,每个节点除了保存了对下一个节点的引用,同时还保存这对前一个节点的引用。 其结点跟单链表相似,如图所示: 设计双向链表的操作: 1、结点数据:/** * 链表节点,相当于火车的车厢 * @author Administrator * */public class MyNode { //数据域 public long data; //原创 2017-04-05 23:57:36 · 284 阅读 · 0 评论 -
数据结构之双端链表
双端链表指的是双向链表中头结点始终保持着对尾结点的引用。 准备数据: 一、结点类:/** * 链表节点,相当于火车的车厢 * @author Administrator * */public class MyNode { //数据域 public long data; //指针域 public MyNode next; /** * 前指针原创 2017-04-06 00:10:40 · 308 阅读 · 0 评论