数据结构简介

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

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

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

相关推荐
David猪大卫1 小时前
【C++修炼】map 和 set 的使用
c语言·开发语言·数据结构·c++·经验分享·笔记·学习
vvilkim3 小时前
数据结构类型、区别与应用场景:一篇讲透选型逻辑
数据结构
阿卡好可爱7 小时前
Lua 热更新不生效:改完文件线上仍是旧逻辑,package.loaded 与 upvalue 重绑定详解
数据结构·分布式·后端·架构·lua
心仪久了会沦陷1 天前
C语言数据结构入门——树与二叉树详解:概念、堆实现与链式遍历
c语言·数据结构·算法
码少女1 天前
数据结构——图的基础
数据结构
Severus_black1 天前
【C++初阶】list使用及相关实现,思路顺滑流畅!
c语言·数据结构·c++·stl·list
二本咕咕-机械转码1 天前
FreeRTOS深入解析(八)IPC机制之FromISR详解
数据结构·单片机·链表
1-1=01 天前
C# 数据结构和特殊类型
数据结构·c#·.net·.netcore
希和20271 天前
C语言程序设计题|有序数组插入数字冒泡排序
c语言·数据结构·算法
布莱克6052 天前
C++ 中 map 的 insert 与 emplace:key 已存在时会覆盖吗?
开发语言·数据结构·c++·算法·map