数据结构之逻辑结构与物理结构(存储结构)

逻辑结构

逻辑结构分为四种类型:集合结构,线性结构,树形结构,图形结构。

所谓集合结构:表面意思,没有什么深刻意义,就是数据元素同属一个集合,单个数据元素之间没有任何关系。如下图所示。

                                                         

线性结构类似于线性关系,也就是说,线性结构中的数据元素之间是一对一的关系。注意:重点在一对一。如下图所示。


                                               

树形结构:树形结构中的数据元素之间存在一对多的关系。(各元素及元素关系所组成图形类似于树状图)。注意:关系为一对多。如下图所示。


                                                    

图形结构:数据元素之间是多对多的关系。如下图所示。

     

                                        

总结以上几点:用示意图表示数据结构的逻辑关系时要注意:

1.将每一个元素看作为一个结点,用圆圈表示。

2.将各个元素之间的关系用结点之间的连线表示,如果该关系有方向,则用带箭头的连线表示。

物理结构:

物理结构又叫存储结构,分为两种,一种是顺序存储结构一种是链式存储结构。

顺序存储结构是把数据元素放到地址连续的存储单元里面,其数据间的逻辑关系和物理关系是一致的。个人理解所谓顺序是指相邻数据元素间的地址连续。说白了就像排队占位置一样,谁也不能插别人的队。之前学习的数组就是一种顺序存储结构。(如图所示)

                                                  

顺序存储结构存在一定的弊端,就像生活中排队是也会有人插队也可能有人有特殊情况突然离开,这时候整个结构都处于变化中,此时就需要链式存储结构。

链式存储结构:是把数据元素存放在任意的存储单元里面,这组存储单元可以是连续的也可以是不连续的。此时,数据元素之间并不能反映元素间的逻辑关系,因此在链式存储结构中引进了一个指针存放数据元素的地址,这样通过地址就可以找到相关联数据元素的位置(如图所示)。

                                                  

显然链式结构比较灵活,数据存在哪里并不重要,只要有一个指针存放了相应的地址,在通过地址就能找到相邻元素啦。从这一点也能看到顺序存储结构和链式存储结构最大的区别就是链式存储结构引进了指针的概念,通过指针来存储地址,从而通过地址来寻找相邻元素。

猜你喜欢

转载自blog.csdn.net/YangTongA/article/details/78244252