一、栈:stack,又称堆栈【出口和入口在同一侧】,特点:先进后出(即,存进去的元素,要在后它后面的元素依次取出后,才能取出该元素)

        例子:子弹压进弹夹,先压进去的子弹在下面,后压进去的子弹在上面,当开枪时,先弹出上面的子弹,然后才能弹出下面的子弹。
压栈:存元素
弹栈:取元素

二、队列:queue,简称队【出口和入口在对立的两侧】,特点:先进先出(即,存进去的元素,要在后它前面的元素依次取出后,才能取出该元)

        例子:小火车过山洞,车头先进去,车尾后进去;车头先出来,车尾后出来。

三、数组:Array,是有序的元素序列,数组是在内存中开辟一段连续的空间,并在此空间存放元素,

        例子:就像是一排出租屋,有100个房间,从001到100每个房间都有固定编号,通过编号就可以快速找到租房子的人。
特点:
查询快:数组的地址是连续的,我们通过数组的首地址可以找到数组,通过数组的索引可以快速查询某个元素
增删慢:数组的长度是固定的,我们想要增加/删除,必须创建新数组,把源数组的数据复制到新数组中

四、链表:linked list,由一系列结点node组成,一个节点包含了一个数据和两个地址指针&&【自己的节点地址+数据+下一个节点地址】

       例子:多个人手拉手,每个人使用自己的右手拉住下个人的左手,依次类推,这样多个人就连在一起了
特点:
查询慢:链表中地址不是连续的,且没有指针索引,所以每次查询都必须从头开始查询
增删快:链表结构,增加/删除一个元素,对链表的整体结构没有影响

五、红黑树是一种特殊的二叉查找树,所以也具备二叉查找树的特点

         二叉查找树有以下特点:
1、如果它的左子树不为空,则左子树上的节点值小于根节点值
2、如果它的右子树不为空,则右子树上的节点值大于根节点值
红黑树独有的特点:
1、节点可以是红色或者黑色
2、根节点【没有子节点的节点叫根节点】必须是黑色
3、叶子节点(空节点)是黑色
4、不可有连在一起的红节点
红黑树的添加或删除都会用到节点变换颜色或旋转方式【先进行颜色的变换,若仍然不满足红黑树定义规则,再考虑左旋还是右旋】:

              a. 左旋



b、右旋



例子:

插入节点后根据颜色变换规则,进行变色



但仍然不满足红黑树定义规则,而进行了左旋

java基础之数据结构的更多相关文章

  1. JAVA基础之——数据结构

    JAVA数据结构有8种,如下所示,本文从使用场景,优缺点方面讲解. 1 数组Array ArrayList 使用场景:有序的存储同一类型数据的集合,固定大小 优点:通过索引查找方便 缺点:插入或删除一 ...

  2. Java基础-JAVA中常见的数据结构介绍

    Java基础-JAVA中常见的数据结构介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是数据结构 答:数据结构是指数据存储的组织方式.大致上分为线性表.栈(Stack) ...

  3. [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)

    如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html   谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...

  4. Java基础知识【上】(转载)

    http://blog.csdn.net/silentbalanceyh/article/details/4608272 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...

  5. 万能的林萧说:一篇文章教会你,如何做到招聘要求中的“要有扎实的Java基础”。

    来历 本文来自于一次和群里猿友的交流,具体的情况且听LZ慢慢道来. 一日,LZ在群里发话,"招人啦." 然某群友曰,"群主,俺想去." LZ回之,"你 ...

  6. Java基础应用

    Java集合类解析 List.Map.Set三个接口,存取元素时,各有什么特点? List 以特定次序来持有元素,可有重复元素.Set 无法拥有重复元素,内部排序.Map 保存key-value值,v ...

  7. Java基础常见英语词汇

    Java基础常见英语词汇(共70个) ['ɔbdʒekt] ['ɔ:rientid]导向的                             ['prəʊɡræmɪŋ]编程 OO: object ...

  8. java基础3.0:Java常用API

    本篇介绍Java基础中常用API使用,当然只是简单介绍,围绕重要知识点引入,巩固开发知识,深入了解每个API的使用,查看JavaAPI文档是必不可少的. 一.java.lang包下的API Java常 ...

  9. 黑马程序员----java基础笔记中(毕向东)

    <p>------<a href="http://www.itheima.com" target="blank">Java培训.Andr ...

  10. Java基础知识点

    以下10点为JAVA 基础知识,后面将足以总结和完善以备面试 数据类型 (包装类,字符串,数组) 异常处理 Java IO和NIO 数据结构 (集合和容器 ) 多线程(并发) 网络通信(协议) 面向对 ...

随机推荐

  1. 我的程序库:HiCSUtil

    HiCSUtil是我写的一个通用程序库,地址:https://github.com/xumingxsh/HiCSUtil 该库的目标是为重用的一些功能提供一个通用的库.主要包括: 1: CBO: 提供 ...

  2. 浅谈ChatGPT在云计算资源调度的应用

    本文分享自天翼云开发者社区<浅谈ChatGPT在云计算资源调度的应用>,作者:张****兵 一.ChatGPT技术原理 ChatGPT 是基于 GPT(Generative Pre-tra ...

  3. JMeter组件的执行顺序和作用域

    组件介绍 测试计划:jmeter的起点和容器 线程组:代表一定的虚拟用户 取样器:发送请求的最小单元 逻辑控制器:控制组件的执行顺序 前置处理器:在请求之前的操作 后置处理器:在请求之后的操作 断言: ...

  4. python式思辨

    设A为条件,B.C为完全相反的结论. KFK:if〈A〉,〈B〉 GLXY:if〈A〉,〈C〉 我不知道为什么会出现这样的结果,也许是我的版本太久没有更新了吧

  5. Codeforces Round 999 比赛记录

    前情提要 这个菜鸡CF上了 \(\color{darkcyan}Specialist\),心情大好,正好赶上放假,决定打一场CF. 赛时记录 A 上来脑子抽了,吃了一发罚时.发现写错了一种情况,改过来 ...

  6. 如何在啥也不懂的情况下将你的公众号接入DeepSeek或其它大模型

    如何在啥也不懂的情况下将你的公众号接入DeepSeek或其它大模型 前言 最近国产大模型的"顶流"DeepSeek可谓是红得发紫,朋友圈刷屏的AI神回复.公众号爆款推文,都少不了它 ...

  7. MarkDown学习使用图片

    学习MarkDown使用

  8. FANUCR2000iB发那科机器人保养有哪些

      1.机器人保养的重要性   机器人都需要预防性保养,这样可以保证它们在生产线上保持最佳性能和实现一致性.当机器人没有进行定期的预防性保养检查,可能会导致零部件损坏或故障,从而致使生产放慢甚至停机. ...

  9. xbox商店访问、下载速度慢,如何提升下载速度?

    Xbox下载速度慢可能是由于多种原因,例如网络连接问题.微软服务器问题等.以下是一些可以尝试的方法来提升Xbox的下载速度: 更改网络设置:以WIN11举例:鼠标右键点电脑桌面右下角的网络图标,选择& ...

  10. 【VMware by Broadcom】VMware 产品套件(2025)

    VMware 被 Broadcom 收购后(现为 VMware by Broadcom),重新调整了其产品部门并最终优化为了四个,分别是:VMware Cloud Foundation(VCF)部门. ...