数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
数据结构分为3大部分,1、逻辑结构 2、物理(存储)结构 3、对数据施加的运算 。
1、逻辑结构就是数据之间存在的关系。
逻辑结构分为线性结构和非线性结构。
线性:有且只有一个开始结点和终端 结点,并且所有的结点都最多只有一个直接前驱和直接后继。
非线性:每个结点可以有不止一个直接前驱和直接后继。
线性结构:线性表、(顺序表,链表,栈,(顺序栈,链栈)和队列(顺序队列、链队列))
非线性结构:树(二叉树),图(又叫网)
集合:有时候是线性的有时候是非线性的,主要是通过封装一些方法实现对对象的操作。
2、物理结构
数据间的关系(逻辑结构)在计算机中物理层面上 的存储实现,存储结构是逻辑结构在计算机中的存储映像。是逻辑结构用计算机语言(高级语言)的实现。常见的存储结构有:顺序存储、链式存储、索引存储和散列存储(哈希表)。
它包括数据元素的表示和关系的表示。在计算机中表示信息的最小单位是二进制数的一位;数据元素之间的关系在计算机中有两种不同的表示方法:顺序映像和非顺序映像,并由此得到两种不同的存储结构:顺序存储和链式存储。
存储结构分四类:顺序存储、链接存储、索引存储 和 散列存储。
顺序结构和链接结构适用在内存结构中。
索引结构和散列结构适用在外存与内存交互结构。
顺序存储:在计算机中用一组地址连续的存储单元依次存储线性表的各个数据元素,称作线性表的顺序存储结构。
特点:
1、随机存取表中元素。
2、插入和删除操作需要移动元素。
顺序存储结构通常借助程序设计语言中的数组来加以实现。
链接存储:在计算机中用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)。它不要求逻辑上相邻的元素在物理位置上也相邻.因此它没有顺序存储结构所具有的弱点,但也同时失去了顺序表可随机存取的优点。