数据结构简介

在容器的基础之上,java引入了数据结构的概念。数据结构可以简单地理解成是一个以特定的布局方式来存储数据的容器。但是我个人觉得这种理解方式不太合理,根据我们学的数据结构的内容,我更倾向于数据结构是数据在容器中的布局方式,而不是容器本身。

数据结构是数据的布局方式,那么根据数据的布局方式的不同,采用不同的数据结构的容器的自然也是不同的。根据数据结构的不同,不同的容器对于不同的操作反应效率是不同的,也就是说对于一个容器来说,某些操作是高效的,而另一些操作是低效的。这一点在我们之前介绍的容器ArrayList容器类和LinkedList容器类当中体现得较为明显。ArrayList容器类的底层是通过数组来实现的,所以它的访问效率较高但是增删效率较低;而LinkedList类的底层是通过双向链表实现的,它的访问效率低下,但是增删效率较高。从这个例子上也得出一个结论:每一种数据结构逗不是万能的,都有它的优点和缺点。这也就是我们需要学习数据结构的原因,只有掌握了各种各样的数据结构的特点才能在实际运用中原则合适的数据结构来处理问题。

数据结构可以分为逻辑结构个物理结构两部分,逻辑结构指的是数据元素间抽象化的相互关系,而物理结构指的是存储结构即数据在计算机中的存储形式。按照逻辑结构来分类,数据结构可以分为线性结构、树形结构以及图形结构。线性结构中的元素存在一对一的关系,常见的线性结构有线性表、栈、队列、串(一维数组)等。树形结构中的元素和线性结构不同,它并不是一一对应的关系,一般是一对多的情况,常见的树形结构有二叉树、红黑树、B树、哈夫曼树等。图形结构是一种多对多的数据结构,有点像网络结构。图形结构比较复杂而且应用不多,因此只做简单了解。常见的图形结构有:有向图、无向图、简单图等。

相关推荐
晊晌_h14 分钟前
嵌入式从0到精通——数据结构总结[特殊字符]
数据结构·算法·排序算法
我找到地球的支点啦1 小时前
Matlab系列(009) 一CRC循环冗余校验详解
开发语言·数据结构·算法·matlab·信息与通信
lisin-lee-cooper6 小时前
【leetcode658】有序数组找出k个最接近x的数
java·数据结构·算法
sunburn-6 小时前
Java堆(Heap)详解与实战教学
java·开发语言·数据结构·ide·算法
哭泣方源炼蛊8 小时前
并查集进阶 P1(带权并查集,并查集分类)
数据结构·c++·算法·二进制·带权并查集
五_谷_丰_登9 小时前
平衡二叉树(AVL)讲解二
数据结构·c++
fpcc10 小时前
数据结构和算法—最短路径的算法
数据结构·算法
Mr. zhihao11 小时前
从数组到 B+ 树:一棵树的进化史
数据结构·innodb·b+树
船厂电气自动化ai大模型12 小时前
AI大模型与数学第64课:矩阵×向量乘法(神经网络矩阵运算底层)
数据结构·深度学习·线性代数·机器学习·推荐算法
小欣加油12 小时前
Leetcode2058 找出临界点之间的最小和最大距离
数据结构·c++·算法·leetcode·职场和发展