数据结构简介

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

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

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

相关推荐
这题怎么做?!?1 小时前
自我反思与暑假及大三上学期规划
linux·数据结构·c++
皇华ameya1 小时前
AMEYA360:类比半导体推出36V超低输入偏置电流高性能通用运算放大器
数据结构·贪心算法·动态规划
@干吧jyb2 小时前
贪心算法练习题(7/2)
数据结构·算法·leetcode·贪心算法
情系明明6 小时前
使用c++设计一个计算器
数据结构·c++·算法
一个闪现必杀技9 小时前
数据结构速成--查找
数据结构
我爱吃福鼎肉片11 小时前
【数据结构】——链表经典OJ(leetcode)
c语言·数据结构·leetcode·链表
凢曐11 小时前
选择排序算法
数据结构·算法·排序算法
Danny_813 小时前
代码随想录算法训练营第五十六天 | 图论理论基础、深搜理论基础、98. 所有可达路径、797. 所有可能的路径、广搜理论基础、复习
java·数据结构·算法·图论
打鱼又晒网13 小时前
C++——探索智能指针的设计原理
数据结构·c++·笔记·后端
wh_xia_jun14 小时前
c语言指针
c语言·数据结构·算法