一、栈: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. 在linux系统通过OpenSSL工具自签https证书

    工具介绍 OpenSSL是SSL/TLS协议的实现工具 key是私钥文件,用于对发送给客户端的数据加密,以及对从客户端接收的数据进行解密. csr是证书签名请求文件,用于提交给证书颁发机构(CA)对证 ...

  2. T480指纹识别支持

    目标 通过指纹识别解锁slim-lock 环境 操作系统archlinux 桌面管理器slim 锁屏slimlock 硬件 Thinkpad T480 注: 指纹设备id, 06cb:009a 安装 ...

  3. sql server导入表的一些函数使用

    truncate table JC_BMDA; insert into JC_BMDA(bh,mc,qdmc,pym,ty) select right('0'+rtrim(convert(varcha ...

  4. FastReport如实现打印固定行数,不足补打空白行(转)

    看了网上的一些资料,发现了方法,但是描述都不是很详细,也至于每次都无法实现,只能在数据集中做补空行处理.今天终于弄通了,贴出方法,以备后续之用. 1. <1>在报表上加一个Child(在控 ...

  5. 本地部署最强人工智能服务:方案(一)Chatbox+硅基流动(满血DeepSeek R1)

    最近DeepSeek的服务器经常出现服务器繁忙,而且本地运行大模型很吃力,我的960m挺吃力的.不过华为后续和硅基流动一起搭建起了DeepSeek的API服务,注册就送14块钱,换算下来 4块/M t ...

  6. 支付宝 IoT 设备入门宝典(上)设备管理篇

    相信不少朋友最近都被支付宝"碰一下"广告刷屏,"不用打开APP 支付就碰一下"几个字一出简直自带BGM--其实"碰一下"就是支付宝 IoT ...

  7. test1111

    了解客户端和服务端的请求原理 HTTP协议及其组成 HTTPS交互原理分析 访问支付宝,微信的开放接口 都是基于HTTP 对外提供的开放服务 API都是基于HTTP协议的, 微服务中的服务之间的调用大 ...

  8. 傻妞PLUS机器人教程——安装

    特性 简单易用的消息搬运功能. 简单强大的自定义回复功能. 完整支持 ECMAScript 5.1 的插件系统,基于 otto. 支持通过内置的阉割版 Express / fetch ,接入互联网. ...

  9. Java - 高射炮打蚊子(第二弹)

    题记部分 01 || 面试题 001 || 什么是JVM JVM(Java虚拟机)是Java程序运行的环境,它是一个抽象的计算机,包括指令集.寄存器集.堆栈.垃圾回收等.JVM屏蔽了与具体操作系统平台 ...

  10. Azkaban - [01] 概述

    简单的任务调度使用crontab.复杂的任务调度使用oozie.azkaban等开发调度系统. 一.为什么学习Azkaban   一个完整的数据分析系统通常都是由大量任务单元(shell脚本.java ...