![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
Kevin-Zeng
这个作者很懒,什么都没留下…
展开
-
数据结构——红黑树
文章目录1 引言2 定义定义节点名称:3 性质4 2-3-4树和红黑树的等价关系5 查找6 插入6.1(情景3) 插入节点的父节点为黑色6.2(情景4) 插入节点的父节点为红色,叔叔节点为黑色6.2.1(情景4.2.1) 父节点P为G左孩子,插入位置为左孩子6.2.2(情景4.2.2) 父节点P为G左孩子,插入位置为右孩子6.2.3(情景4.3.1) 父节点P为G右孩子,插入位置为右孩子6.2.4...原创 2020-02-06 14:39:02 · 443 阅读 · 0 评论 -
数据结构——2-3-4树
文章目录1 引言2 2-3-4树3 定义4 查找5 插入5.1 非4-节点插入5.2 4-节点插入5.3 父节点分裂6 删除6.1 删除的节点不为2-节点6.2 删除非叶子节点6.3 删除的叶子节点为2-节点7 结语推荐阅读1 引言在上一篇文章中介绍了2-3树的定义以及插入删除操作。本篇文章将在2-3树的基础上更进一步,介绍比2-3树更为复杂的数据结构2-3-4树。之所以介绍2-3-4树是因为...原创 2020-01-22 17:27:27 · 377 阅读 · 0 评论 -
数据结构——2-3树
文章目录1 前言2 2-3树定义2-3树的定义3 2-3树性质性质:4 2-3树查找5 2-3树插入5.1 插入5.2 向2-节点中插入新节点图解过程:5.3 向一棵只含3-节点的树中插入新节点图解过程:5.4 向一个父节点为2-节点的3-节点中插入新节点图解过程:5.5 向一个父节点为3-节点的3-节点中插入新节点图解过程:5.6 分裂根节点图解过程:6 2-3树删除6.1 删除非叶子节点图解过...原创 2020-01-22 14:40:40 · 833 阅读 · 0 评论 -
数据结构——平衡二叉树(AVL树)(java版)
文章目录1 引言2 为什么要有树结构?1 引言二叉树是数据结构中的重点与难点,也是应用较为广泛的一类数据结构。二叉树的基础知识在之前的数据结构与算法——二叉树基础中已经详细介绍。本篇文章将着重介绍两类二叉树,二叉搜索树和平衡二叉树。2 为什么要有树结构?...原创 2020-01-21 10:02:05 · 609 阅读 · 0 评论 -
数据结构——二叉树基础
文章目录1 前言2 概念2.1 节点2.2 树节点3 树3.1 定义3.2 节点的度3.3 节点关系3.4 节点层次3.5 树的深度4 二叉树4.1 定义4.2 二叉树特点4.3 二叉树性质4.4 斜树4.5 满二叉树4.6 完全二叉树4.7 二叉树的存储结构1 前言树是数据结构中的重中之重,尤其以各类二叉树为学习的难点。本文将详细讲述树的基本概念以及树构造和遍历,为后续深入学习做好基础。2...原创 2020-01-17 16:09:23 · 511 阅读 · 0 评论 -
数据结构——java栈+队列实现简单的停车场管理问题
文章目录源码地址:重要问题描述要求:问题分析代码实现:ParkingLotManagementSystem.class测试:车辆停在停车场离开:车辆停在便道离开:源码地址:源码地址:https://gitee.com/zenghua3300/Data-Structures喜欢的小伙伴麻烦帮点一个star重要本文设计和代码是基于 以下博客(请点击)数据结构——栈的java实现(一)-使...原创 2020-01-10 16:14:20 · 2256 阅读 · 0 评论 -
数据结构——队列的java实现(三)-使用单向链表以及实现
文章目录队列的链式存储结构及实现代码实现:Queue.classLinkedListQueue.classMain.class测试结果:队列的链式存储结构及实现定义:队列的链式存储结构,其实就是线性表的单链表,只不过,它只能尾进头出。我们把它简称为链队列。队头指针指向链队列的头结点,队尾指针指向链队列的终端节点。当队列为空时,front和rear都指向头结点,如图:队列的链式存储结构-...原创 2020-01-08 18:15:26 · 347 阅读 · 0 评论 -
数据结构——队列的java实现(二)-循环队列
文章目录数组队列存在的问题循环队列:代码实现:Queue.classLoopQueue.classMain.class测试结果循环队列时间复杂度:线性表有顺序存储结构与链式存储结构,栈是一种特殊的线性表,所以有两种数据的存储方式。同样,队列作为一种特殊的线性表,也同样存在两种数据的存储方式。定义:我们把队列这种头尾相接的顺序存储结构称为循环队列。数组队列存在的问题如果前面节点删除了数据,就...原创 2020-01-08 17:36:27 · 249 阅读 · 0 评论 -
数据结构——队列的java实现(一)-使用顺序存储结构(数组)以及实现
文章目录队列的定义:数组队列的实现:代码实现:Queue.classArrayQueue.class测试结果:数组队列的时间复杂度:队列的定义:队列(Queue):是另一种被限制过的线性表,它是固定一端来插入数据元素,另一端只删除元素,也就是说队列中的元素移动是固定的,就像超市收银台一样,一边是进的,一边是出的,而且是先进入的首先获得服务的。队列是一个特殊的线性表,它只允许在表的前端(...原创 2020-01-08 16:55:51 · 503 阅读 · 0 评论 -
数据结构——栈的java实现(二)-使用单向链表以及实现
文章目录Stack.classLinkedList.classLinkedListStack.class测试结果:栈来自于线性表,因此栈可以使用顺序表的方式来实现也可以使用链表的方式来实现。本文是根据单向链表来实现栈的使用的语言是Java,上一篇文章中使用顺序存储(数组)来实现栈Stack.classpackage code.ArrayCode;public interface S...原创 2020-01-08 11:28:59 · 383 阅读 · 0 评论 -
数据结构——栈的java实现(一)-使用顺序存储结构(数组)以及实现
文章目录一、线性表的定义二、顺序存储结构三、栈的定义代码:Array.classArrayStack.classStack.class测试:测试结果:总结:一、线性表的定义线性表是同一类型数据的一个有限序列,线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。线性表的顺序存储要求地址空间是连续的,地址必须一个接一个,不能中断。如下图为顺序...原创 2020-01-07 17:06:15 · 1000 阅读 · 1 评论 -
Leetcode——两数之和
题目:你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解答:class Solution { public int[] twoSum(int[] nums, int target) {...原创 2019-08-05 08:48:38 · 76 阅读 · 0 评论