
数据结构
文章平均质量分 67
数据结构学习
evan_qb
冰冻三尺,非一日之寒
展开
-
【数据结构】你不知道的“二分查找”
二分查找针对的是一个有序的数据集合,查找思想有点类似分治思想。每次都通过跟区间的中间元素对比,将待查找的区间缩小为之前的一半,直到找到要查找的元素,或者区间被缩小为0。普通版代码实现:public static int binarySearch(int[] arr,int num){ int left = 0; int right = arr.length - 1; while (left <= right){ //防止两者之后导致类型值溢出原创 2021-04-28 10:24:08 · 531 阅读 · 1 评论 -
【数据结构】什么是红黑树?
漫画转自: 微信公众号 程序员小灰————————————二叉查找树(BST)具备什么特性呢?1.左子树上所有结点的值均小于或等于它的根结点的值。2.右子树上所有结点的值均大于或等于它的根结点的值。3.左、右子树也分别为二叉排序树。下图中这棵树,就是一颗典型的二叉查找树:1.查看根节点9:2.由于10 ...转载 2018-11-26 14:53:14 · 639 阅读 · 1 评论 -
【数据结构】二叉树的增删以及遍历
什么是二叉树?二叉树是一个连通的无环图,并且每一个顶点的度不大于3。有根二叉树还要满足根结点的度不大于2。有了根结点之后,每个顶点定义了唯一的父结点,和最多2个子结点。然而,没有足够的信息来区分左结点和右结点。接下来我们来自己实现一个二叉树首先定义一个树的节点类public class Node { //数据项 public long data; //数据项...原创 2018-11-14 18:01:40 · 278 阅读 · 0 评论 -
【数据结构】双端链表和双向链表
双端链表和双向链表双端链表:一、什么是双端链表。链表中保存着对最后一个链节点引用的链表。二、从头部进行插入要对链表进行判断,如果为空则设置尾节点为新添加的节点。三、从尾部进行插入如果链表为空,则直接设置头结点为新添加的节点,否则设置尾节点的后一个节点为新添加节点。四、从头部进行删除判断头结点是否为下一个结点,如果没有则设置为结点为null。双端链表的好处就是可以从尾结点进行添加...转载 2018-11-11 23:13:10 · 1881 阅读 · 0 评论 -
【数据结构】单链表
我们单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。我们应该也使用过LinkedList的集合,它就是一个链表的结构,接下来我们来手动实现一下单链表,这样更加有利于了解其构成,首先创建一个Node单...原创 2018-11-02 11:06:18 · 222 阅读 · 0 评论 -
【数据结构】队列的简单实现
/** * @date 2018/10/26 * 队列 */public class MyCycleQueue { //底层使用数组 private long[] arr; //有效数据的大小 private int elements; //队头 private int front; //队尾 private int end...原创 2018-10-26 10:06:28 · 335 阅读 · 0 评论 -
【数据结构】栈的简单实现
我们都知道栈(Stack)是限制仅在表的一段进行插入和删除运算的线性表1、通常称插入、删除的这一端为栈顶(Top),另一端为栈底(Bottom)2、当表中没有元素时被称为空栈3、栈为先进后出(Last In First Out)的线性表,简称LIFO栈的修改总是按照先进后出的原则进行实现代码如下:/** * @date 2018/10/26 * 栈的实现 */...原创 2018-10-26 09:16:37 · 264 阅读 · 0 评论 -
java递归生成json树
1、准备表结构及对应的表数据a、表结构:create table TB_TREE(CID NUMBER not null,CNAME VARCHAR2(50),PID NUMBER //父节点)b、表数据:insert into tb_tree (CID, CNAME, PID) values (1, '中国', 0);insert into tb_tree (CID, CNAME, ...转载 2018-03-21 15:43:13 · 2568 阅读 · 0 评论 -
【数据结构】顺序表的两种存储形式
原创 2018-03-13 23:55:31 · 2275 阅读 · 0 评论 -
【数据结构】概论
结构图简述逻辑结构与存储结构的关系存储结构不仅将数据元素存储到计算机中,而且还要各数据元素之间的逻辑关系。逻辑结构与计算机无关,存储结构是数据元素之间的关系在计算机中的表示。通常情况下,一种逻辑结构可以有多种存储结构。例如:线性结构可以采用顺序存储结构或存储结构表示。数据结构与数据类型有什么区别?数据结构是相互之间存在一种或多种特定关系的数据元素的集合。数据类型是一个值的集合和定义在这个值集上的一...原创 2018-03-03 09:28:52 · 204 阅读 · 0 评论 -
【数据结构】二叉树的遍历
树的遍历是树的一种重要的运算。所谓遍历是指对树中所有结点的信息的访问,即依次对树中每个结点访问一次且仅访问一次,我们把这种对所有节点的访问称为遍历(traversal)。那么树的两种重要的遍历模式是深度优先遍历和广度优先遍历,深度优先一般用递归,广度优先一般用队列。一般情况下能用递归实现的算法大部分也能用堆栈来实现。深度优先遍历对于一颗二叉树,深度优先搜索(Depth First Search)是...原创 2018-03-14 22:01:02 · 350 阅读 · 0 评论