java数据结构
程序员bigsai
坚持分享学习,写了一本原创数据结构与算法pdf分享给大家。
展开
-
java实现简单链表
链表是由一个个节点连接起来的。首先链表的node类代码为: public class node { public int value;//节点的结果 node next;//下一个连接的节点 public node(){} public node(int value) { this.value=value; } public void display() { Syste...原创 2018-03-24 21:21:02 · 2455 阅读 · 0 评论 -
数据结构与算法—二叉树的层序、前序中序后序(递归、非递归)遍历
目录前言 层序遍历 前中后序遍历(递归) 前言 前面介绍了二叉排序树的构造和基本方法的实现。但是排序遍历也是比较重要的一环。所以笔者将前中后序.和层序遍历梳理一遍。了解树的遍历,需要具有的只是储备有队列,递归,和栈。这里笔者都有进行过详细介绍,可以关注笔者数据结构与算法专栏。持续分享,共同学习。层序遍历 层序遍历。听名字也知道是按层遍历。我们知道一个节点有左右节点。而每一层一层的遍...原创 2019-08-21 23:50:55 · 9066 阅读 · 2 评论 -
数据结构与算法—队列详解
大纲前言 队列介绍基本属性 普通队列循环队列链式实现具体实现前言 栈和队列是一对好兄弟,前面我们介绍过数据结构与算法—栈详解,那么栈的机制相对简单,后入先出,就像进入一个狭小的山洞,山洞只有一个出口,只能后进先出(在外面的先出去)。而队列就好比是一个隧道,后面的人跟着前面走,前面人先出去(先入先出)。日常的排队就是队列运转形式的一个描述!所以队列的核心理念就是:先进先出!队列介绍基...原创 2019-08-16 01:18:41 · 6374 阅读 · 2 评论 -
数据结构与算法——二叉平衡树(AVL树)详解
AVL树是带有平衡条件的二叉查找树(平衡二叉树)。这个平衡条件必须要`容易保持`。而且要保证它的深度是O(logN). AVL的条件是左右树的高度差(`平衡因子`)不大于1;并且它的每个子树也都是平衡二叉树。原创 2019-08-25 11:41:21 · 7113 阅读 · 2 评论 -
数据结构与算法—一文多图搞懂双链表
目录前言双链表介绍与单链表区别前言前面讲过线性表中顺序表和链表的实现和性质。但是在数据结构与算法中,双向链表无论在考察还是运用中都占有很大的比例,笔者旨在通过本文与读者一起学习分享双链表相关知识。双链表介绍与单链表区别结构上:...原创 2019-08-11 12:03:07 · 4936 阅读 · 1 评论 -
数据结构与算法—二叉排序(查找)树
再数据结构中`树`、`图`才是数据结构标志性产物,(线性表大多都现成api可以使用),因为树的`难度相比线性表大一些`并且树的`拓展性很强`,你所知道的树、二叉树、**二叉排序树**,**AVL树**,线索二叉树、**红黑树**、B数、线段树等等高级数据结构。然而二叉排序树是所有的基础,所以彻底搞懂二叉排序树也是非常重要的。原创 2019-08-19 13:23:31 · 11638 阅读 · 0 评论 -
数据结构与算法—栈详解
目录什么是栈设计与介绍数组实现结构设计push插入s什么是栈百度百科上,栈是这么定义的:栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素...原创 2019-08-13 18:51:04 · 7542 阅读 · 5 评论 -
数据结构于算法—线性表
通过前面[数据结构与算法前导](https://blog.csdn.net/qq_40693171/article/details/96913019)我么知道了数据结构的一些概念和重要性,那么我们今天总结下线性表相关的内容。当然,我用`自己的理解解`分享给大家。- 其实说实话,可能很多人依然分不清`线性表,顺序表,和链表`之间的区别和联系! - 线性表:`逻辑结构`, 就是对外暴露数据之间的关系,不关心底层如何实现。 - 顺序表、链表:`物理结构`,他是实现一个结构实际物理地址上的结构。比如顺序表原创 2019-08-04 13:15:34 · 4543 阅读 · 2 评论 -
数据结构与算法—前导
前言重要性数据结构与算法是程序员内功体现的重要标准之一,而数据结构的也应用在各个方面,更有程序=数据结构+算法这个被人认证的等式存在。并且数据结构与算法的应用无处不在,各个中间件开发者,架构师。他们都在努力的优化中间件、项目结构结构以及算法提高运行效率与内存占用。故学好数据结构是很重要的。数据结构概念数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关...原创 2019-07-25 23:53:34 · 4131 阅读 · 0 评论 -
java最简单的并查集(不想交集合)以及杭电1272
并查集要有的一些属性:value:表示当前值,指针:(不一定是指针)指向父节点。 还有一个属性number:表示该树存在的总个数。(也可以用深度表示)。我用小树插在大树上。 如果是普通数字表示的树,可以简化: 初始全部-1,-1表示指向自己,数组的值表示指向。你可能会问那么总数怎么表示,很简单,其实我们不需要知道所有节点的总数,只需要根节点的总数就可以了,正常情况下根节点的初始是-1,但是一旦...原创 2018-05-16 00:05:31 · 2763 阅读 · 0 评论 -
java实现简单的二叉树ADT
边分析边走 首先节点类: /* * 节点 * value 储存的值 * left 左节点 right 右节点 */public class node {//结点 public int value; public node left; public node right; public node() { } public node(int value) { th...原创 2018-03-24 21:52:18 · 3337 阅读 · 0 评论 -
Java实现简单的队和栈
对于Java的队和栈个人用的不太多,更喜欢用List集合类。 栈:使用集合实现,相对简单 import java.util.ArrayList;import java.util.List;public class Stack { int top=-1; List list =new ArrayList(); public void push(int a) {//近栈 top ;...原创 2018-03-24 21:36:28 · 3261 阅读 · 0 评论 -
数据结构与算法—递归算法(从阶乘、斐波那契到汉诺塔的递归图解)
目录递归介绍递归求阶乘递归求斐波那契递归解决汉诺塔总结递归介绍递归:就是函数自己调用自己。 子问题须与原始问题为同样的事,或者更为简单;递归通常可以简单的处理子问题,但是不一定是最好的。对于递归要分清以下概念:自己调用自己递归通常不在意具体操作,只关心初始条件和上下层的变化关系。递归函数需要有临界停止点,即递归不能无限制的执行下去。通常这个点为必须经过的一个数。递归通常能被其他...原创 2019-08-18 11:50:31 · 15255 阅读 · 17 评论