数据结构中的逻辑结构(附上c++中的常见数据结构的逻辑结构)

 

最近在学习数据结构,有必要对自己这两天的学习做一个总结,今天就来总结下,数据结构的逻辑结构

按照分类标准的不同,我们把数据结构分为逻辑机构和存储结构,今天主要讲解逻辑结构

逻辑结构:是指数据对象中的数据元素之间的相互关系,主要分为以下四种结构

1.集合结构

集合结构中的数据元素处理同属于一个集合里,它们之间没有其他关系。各个数据元素是“平等”的,它们的共同属性是“同属于一个集合”。数据结构中的集合关系就类似于数学中的集合,满足集合的三个基本性质,确定性,互异性,无序性,而满足这个性质的应该只有C语言里的结构体满足这个条件,因为结构体里的数据无序,互异,确定。

《数据结构中的逻辑结构(附上c++中的常见数据结构的逻辑结构)》

 2.线性结构

线性结构中的数据元素之间存在一对一的关系,满足这个关系的有  线性表(数组,vector,链表),队列,栈,串

《数据结构中的逻辑结构(附上c++中的常见数据结构的逻辑结构)》

下面具体解释下原因:先看定义

线性表:零个或者是多个数据元素的有限序列。

下面对其定义进行下充分的解读,首先它是一个序列,也就是说元素之间是有顺序的,若元素存在多个,则第一个元素无前驱,最后一个元素无后继,其他每个元素都有且之后一个前驱和后继。然后线性表强调是有限的,当元素个数为零个时称为空表。

所以线性表的元素之间是满足一对一的关系的

栈:栈(stack)是限定仅在表尾进行插入和删除操作的线性表,是一种特殊的线性表,所以属于线性结构

队列:队列(queue)是只允许在一端进行插入操作,而在另外一端进行删除操作的线性表,是一种特殊的线性表,所以属于线性结构

串:串(string)是由零个或者多个字符组成的有限序列。

看定义我们就能清楚的看到,串是特殊的线性表,只是把定义中的数据元素换成了特定的字符元素,所以串也是属于线性结构

一般情况下,把栈,队列,串,分为一组叫受限线性表。

3.树形结构

树形结构中的数据元素之间存在一种一对多的层次关系,一般分为一般树和二叉树,满足这个关系的有 set,map

《数据结构中的逻辑结构(附上c++中的常见数据结构的逻辑结构)》

4.图形结构

图形结构的数据元素是多对多的关系,一般分为有向图和无向图,

《数据结构中的逻辑结构(附上c++中的常见数据结构的逻辑结构)》

最后可以画一个思维导图进行下总结

《数据结构中的逻辑结构(附上c++中的常见数据结构的逻辑结构)》

由于暂时没有找到之前画的图,这里有一处错误更正,集合的常见结构不是结构体,结构体本身不算是数据结构,因为结构体里存放的不是相同的数据元素,这里的集合应该是哈希表,又叫散列表。

    原文作者:zhanghuaichao
    原文地址: https://blog.csdn.net/zhanghuaichao/article/details/101531781
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞