当一个结构,如数组、链表、树、图,在逻辑结构中只有一种定义,而在物理结构中却有两种选择,那么这个结构就属于逻辑结构;
相反,当此结构在原有基础上加上了某种限定,使得其在物理结构中只有一种定义,那么这个结构就属于物理(存储)结构;
举例1:栈属于什么结构?
分析:栈在逻辑结构中只能属于线性结构,而在物理结构中它可以使用顺序存储(数组),也可以使用链式存储(链表),所以说栈是一种逻辑结构。
举例2:线索二叉树属于什么结构?
分析:首先,可以得到二叉树是一种数据结构,但是线索二叉树是加上线索后的链表结构(不能用顺序存储),也就是说,它是计算机内部的只有一种存储结构,所以是物理结构。
逻辑结构和存储结构的区别点在于:数据的逻辑结构是独立于在计算机中的存储结构的,数据的存储方式有多种不同的选择。例如栈是一种逻辑结构,它可以用顺序存储也可以用链式存储。
而数据结构是既可以描述逻辑结构又可以描述存储结构和数据运算,必须包含以上三种元素。所以像顺序表、哈希表、单链表都是数据结构。