数据结构学习笔记

          我们常说的数据结构分为两个部分,逻辑结构和物理结构,逻辑结构即我们平时在程序中或者理论上进行数据分析的数据关系,物理结构即数据在存储器中的具体存储结构。这里,我们来回顾一下经常使用的那些数据结构。

数据结构学习笔记_第1张图片

         物理结构作为数据存储的载体,我们首先讨论。物理结构分为四类,顺序存储结构,链式存储结构,散列存储结构和索引存储结构。

         顾名思义,顺序存储即在内存中开辟一块独立且连续的空间,将这块空间分为无数的独立小空间,我们使用这些小空间来存取数据,访问任意一个数据时,从头到尾顺序访问,并且如果要插入或删除一条记录,需要消耗很多的时间和内存空间。

         链表和顺序表不同,它并不是一整块的空间,而是由无数个小片段连起来的,通过使用前后指针来串联起来。访问数据时,也是从头到尾依次访问,数据访问效率较低。但是添加和删除一条记录时,效率较高,因为只需要修改两个指针即可。

         顺序表和链表存储结构如下图所示:

数据结构学习笔记_第2张图片

         顺序存储和链式存储的性能比较:

数据结构学习笔记_第3张图片

        逻辑存储结构是我们直接接触使用的结构,它要比物理结构复杂一些,总共分为三种,线性结构、非线性结构和集合。

        集合是数据之间没有任何逻辑关系的结构。

        线性结构包括一维数组、栈和队列,一维数组的物理存储结构为顺序存储,通过下标来访问数据,通过上文分析,我们知道,数组访问效率较高,但是插入和删除操作非常困难,需要消耗大量的时间和空间性能。

         栈和队列是一种特殊的线性结构,栈和队列可以是顺序存储结构,也可以是链式存储结构,它们的唯一区别就是存取顺序不一致,栈是先进后出的结构,而队列是先进先出的结构,所以他们的功能也完全不一样。

         非线性结构包括树和图,树是典型的链式存储结构,图也是链式存储结构,树和图的内容比较多,这里不一一介绍了。

        总结:物理存储结构是既定的存储结构,我们只能使用,不能修改,但是逻辑结构是可以修改的,所以,如果需要更改数据的结构以满足需要,可以从逻辑结构入手。


你可能感兴趣的:(数据结构学习笔记)