逻辑结构与存储结构

举报
搞前端的半夏 发表于 2021/10/24 21:55:41 2021/10/24
【摘要】 什么是逻辑结构?是指数据之间的关系。分为:线性结构和非线性结构(集合、树、网)。 1. 线性结构:有且只有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前驱和一个直接后继,一对一关系。形如:A-B-C-D例如:线性表【 顺序表、链表、栈(顺序栈、链栈)和队列(顺序队列、链队列)】。 2. 非线性结构:非线性结构也就是每个结点可以有不止一个直接前驱和直接后继,一对多关系。常见的非...

什么是逻辑结构?

是指数据之间的关系。分为:线性结构和非线性结构(集合、树、网)。

1. 线性结构:

有且只有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前驱和一个直接后继,一对一关系。

形如:A-B-C-D

例如:线性表【 顺序表链表顺序栈链栈)和队列顺序队列链队列)】。

2. 非线性结构:

非线性结构也就是每个结点可以有不止一个直接前驱和直接后继,一对多关系。

常见的非线性结构包括:树(二叉树)、图(网)等。

什么是存储结构?

是指逻辑结构的存储映像。在物理内存中存储的方式。

常见的存储结构有顺序存储、链式存储、索引存储以及散列存储(哈希表)。

1. 顺序存储:

把逻辑上相邻的节点存储在物理位置上相邻的存储单元中,结点之间的逻辑关系由存储单元的邻接关系来体现。由此得到的存储结构为顺序存储结构,通常顺序存储结构是借助于数组来描述的。

优点:节省空间,可以实现随机存取。

缺点:插入、删除时需要移动元素,效率低。

2. 链式存储:

在计算机中用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)。特点是元素在物理上可以不相邻,所以每个数据元素包括了一个数据域和一个指针域,数据域用来存放数据,而指针域用来指向其后继结点的位置。

优点:插入、删除灵活。

缺点:不能随机存取,查找速度慢。

判断

一个指的是数据之间的关系,而另一个指这种关系在计算机中的表现形式。比如,线性表中的栈,数据元素之间的关系是一对一的,除头和尾结点之外的每个结点都有唯一的前驱和唯一的后继,这体现的是逻辑结构;而对于栈中的结点来说,它们可以顺序存储(也就是顺序栈),取一段连续的存储空间,将栈结点按顺序存入,每个结点和其前驱和后继在物理上都是相邻的。同时,栈结点也可以链式存储(链栈),每个结点中包括数据域和指针域,而指针域就是用来指向其后继的,在访问时就可以通过指针来找到其后继进行访问,每个结点之间物理上可以相邻也可以不相邻。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。