- 线性表 , 也就是数组、链表、栈和队列;
- 树结构 , 包括普通树 , 二叉树 , 红黑树等等;
- 图存储结构 , 这玩意有点难;
- 线性表
- 树结构
- 图结构
- 等等
实际上 , 对于数据的存储该选择什么样的数据结构 , 那就要取决于数据的逻辑结构和物理结构 , 再次声明下 , 这点的理解很重要 , 以下我说的每个字都不要漏掉哦
啥是逻辑结构?不知道你们之前有没有想过这个问题 , 数据的逻辑结构是个啥?可能你有点迷糊 , 但是说起来真的很简单:
数据的逻辑结构就是指的数据之间存在的关系我想经过上面的讲解 , 你这里立马就知道 , 这里指的关系就是上面说的什么一对一 , 一对多和多对多了 , 不错 , 就是这些 , 这里的数据的逻辑结构指的就是这么些个关系 , 就好比我上面给的那个图 , 我们再来看一下:
我想经过以上的解释 , 你会马上知道这里的关系是指一对一 , 一对多 , 多对多 。不错 , 就是这些 。这里的数据的逻辑结构指的就是这些关系 , 就像我上面给出的图一样 。我们再来看看:
文章插图
例如 , 上图中的大伯 , 二伯和爸爸 , 他们都属于兄弟关系 。爷爷有三个儿子 , 大伯有两个孩子,这种都是一对多的关系 。如果要这样存储数据 , 不仅要存储基本的数据信息 , 还要存储它们之间现有的关系 。
而这种关系即是数据之间的逻辑结构 。
总之 , 数据之间的逻辑结构大致可以分为三种类型 , 即:
- 一对一:就是那种你挨着我 , 我挨着你的数据 , 比如数组
- 一对多:就是我们上面画的家谱图那样
- 多对多:这个比如说地图 , 或者一些四通八达的路 , 能明白我的意思吧
到了这里 , 你有没有发现 , 这三种逻辑结构的数据 , 正好可以用我们上面介绍的三大类的数据结构去存储 , 想一下 , 也就是下面三种:
- 线性表:一对一
- 树结构:一对多
- 图结构:多对多
物理结构是什么?我们在上面知道了逻辑结构是什么 , 所以我们可以分析数据之间的逻辑结构 , 看看应该使用哪个数据结构来存储数据 。这看似已经万事大吉 , 没啥事了 , 但是 , 实则不然 , 其实吧 , 说到这里 , 牵涉到的知识点又不少 , 我这里只给你说重点 , 详细的以后单独拿出来唠叨唠叨 。
请先记住非常重要的一句话:
数据结构的存储方式只有两种:数组(顺序存储)和链表(链式存储)啥意思嘞?其实吧 , 数组和链表是数据结构中的数据结构 , 其他的数据结构都可以用数组和链表来实现 , 你比如拿栈来说吧 , 可以用数组来实现栈 , 这就叫做顺序栈 , 也可以用链表来实现栈这个就叫做链式栈 。
所以啊 , 每种数据结构的存储其实都可以分为顺序存储(用数组实现)和链式存储(用链表实现)
你比如说要使用队列这个数据结构来存储数据 , 那实际上 , 就可以分为顺序队列实现和链式队列实现 , 也就是看你实际内存中怎样去存储这些数据 , 因此 , 你可以看出 , 数组和链表是数据结构中的基石啊!
那么 , 新的问题就来了 , 既然对于每个数据结构都可以有顺序存储和链式存储 , 那么即时我依据数据的逻辑结构选择了一个数据结构 , 那么我怎么来确定是要顺序存储还是要链式存储呢?
推荐阅读
- 玫瑰花茶品种介绍,玫瑰花茶到底是什么茶
- 跑步到底长肌肉吗
- 慢跑到底会减肥么
- 慢跑到底能消耗多少卡路里
- 每天慢跑五公里到底减肥吗
- 花茶有保质期吗,茉莉花茶到底是不是花茶
- 满6年的车子,年检时需要注意哪些问题?到底好不好过?
- 诸葛亮到底得的什么病?
- 玫瑰花茶泡法技巧,玫瑰花茶到底是什么茶
- 玫瑰花茶适合和什么茶起喝,玫瑰花茶到底是什么茶