小编给大家分享一下常用的Java数据结构知识点有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!按照线性和非线性可以将Java数据结构分为两大类:①线性数据结构:数组、链表、栈、队列
②非线性数据结构:树、堆、散列表、图数组是一种将元素存储于连续内存空间的数据结构,并且要求元素的类型相同。直接赋值:可变数组是在一般数组的基础上结合扩容机制进行改进的具有灵活长度的数组。链表可以定义为一个类,该类的包含两个成员变量的:节点的值val、后继节点的引用next。节点是构成链表的基本单位,这种数据结构在内存空间的存储地址是非连续的。构建多个链表类的对象,并构建这些节点实例之间的引用指向:①节点head的节点值为2,其后继节点是值为1的节点n2。②节点n2的节点值为1,其后继节点是值为0的节点n3。③该链表的头节点为head,尾节点为n3。栈是一种抽象数据结构,特点是“后进先出”,可由数组或者链表实现。入栈操作 push():出栈操作 pop():在Java中可以使用Stack、ArrayDeque、LinkedList实现栈,但通常情况下,不推荐使用Vector类以及其子类Stack,一般使用LinkedList来实现栈:入栈操作 addLast():出栈操作 removeLast():队列是一种抽象数据结构,特点是“先进先出”,可由链表实现。LinkedList
类实现了Queue接口,因此可以把LinkedList
当成Queue来用。Queue
peek():返回第一个元素
区别:在队列元素为空的情况下,element(免费云主机域名)
方法会抛出NoSuchElementException
异常,peek() 方法只会返回 null。树是一种非线性的数据结构,可分为二叉树和多叉树。
二叉树可定义为一个类,该类包含三个成员变量:节点值val、左子节点left、右子节点right
。二叉树各节点实例化:构建二叉树各节点之间的引用指向:图是一种非线性数据结构,由顶点(vertex)和边(edge)组成,每条边都连接着两个顶点。
图分为有向图和无向图。以无向图为例:①顶点集合: vertices = {1, 2, 3, 4, 5}②边集合: edges = {(1, 2), (1, 3), (1, 4), (1, 5), (2, 4), (3, 5), (4, 5)}(1)图的表示方法:邻接矩阵(无向图的邻接矩阵是一个斜对角对称矩阵)
⭐邻接矩阵适用于存储稠密图,即顶点较多、边较少。(2)图的表示方法:邻接表⭐邻接表适用于存储稀疏图,即顶点多、边较少。散列表是一种非线性的数据结构,实质是将键(key)通过Hash函数完成到值(value)的映射。添加键 – 值对:通过键 key查找对应的值 value:设计一个简单的Hash函数构建 编程语言 ==> 编号 的映射,构建一个散列表(假设不考虑低碰撞率、高鲁棒性):(1)堆是一种基于完全二叉树的数据结构,可由数组实现。完全二叉树:一棵深度为k的有n个结点的二叉树,对树中的结点按从上至下、从左到右的顺序进行编号,如果编号为i(1 ≤ i ≤ n)的结点与满二叉树中编号为i的结点在二叉树中的位置相同,则这棵二叉树称为完全二叉树。(2)基于堆的原理实现的排序算法称为堆排序。(3)基于堆实现的数据结构称为优先队列。(4)堆分为大顶堆、小顶堆:①大顶堆:任意节点的值不大于其父节点的值,即根节点最大,任意子节点小于等于父节点。②小顶堆:任意节点的值不小于其父节点的值,即根节点最小,任意子节点大于等于父节点。元素入堆add():元素出堆 poll():看完了这篇文章,相信你对“常用的Java数据结构知识点有哪些”有了一定的了解,如果想了解更多相关知识,欢迎关注百云主机行业资讯频道,感谢各位的阅读!
小编给大家分享一下jQuery如何检查图像是否加载,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!检查图像是否加载有时为了继续脚本免费云主机域名,你可能需要检查图像是否全部加载完毕:你…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。