逻辑结构和存储结构的区别和相同点

如题... 如题 展开
 我来答
衡皓月北罗
2019-11-02 · TA获得超过3万个赞
知道小有建树答主
回答量:1.1万
采纳率:27%
帮助的人:856万
展开全部
复制的有意思伐。。。解释你自己看上面那个复制的,不多说了。
数据的逻辑结构也称为数据结构,分两大类:线性结构和非线性结构。
存储结构分四类:顺序存储、链接存储、索引存储和散列存储。
线性结构中,包括了顺序算法,和链表。也就是说,存储结构的前两种用的是线性结构的算法,非线性结构至少存在一个数据元素,它具有两个或者两个以上的前驱或后继.典型的就是树和二叉树。而索引算法用的就是树的结构,也即是说他属于非线性结构算法。最好是散列存储,典型例子就是hash(哈希)用的是随即散列函数,当然是非线性结构算法。
由此可见,存储结构用的是不同的逻辑结构,也就是用了两种不同的算法。这个就是他们两者的关系。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2017-11-25
展开全部
复制的有意思伐。。。解释你自己看上面那个复制的,不多说了。
数据的逻辑结构也称为数据结构,分两大类:线性结构和非线性结构。
存储结构分四类:顺序存储、链接存储、索引存储和散列存储。
线性结构中,包括了顺序算法,和链表。也就是说,存储结构的前两种用的是线性结构的算法,非线性结构至少存在一个数据元素,它具有两个或者两个以上的前驱或后继.典型的就是树和二叉树。而索引算法用的就是树的结构,也即是说他属于非线性结构算法。最好是散列存储,典型例子就是hash(哈希)用的是随即散列函数,当然是非线性结构算法。
由此可见,存储结构用的是不同的逻辑结构,也就是用了两种不同的算法。这个就是他们两者的关系。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-07-31
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-07-31
展开全部
本章的重点是掌握顺序表和单链表上实现的各种基本算法及相关的时间性能分析,难点是使用本章所学的基本知识设计有效算法解决与线性表相关的应用问题。
要求达到<识记>层次的内容有:线性表的逻辑结构特征;线性表上定义的基本运算,并利用基本运算构造出较复杂的运算。
要求达到<综合应用>层次的内容有:顺序表的含义及特点,顺序表上的插入、删除操作及其平均时间性能分析,解决简单应用问题。
链表如何表示线性表中元素之间的逻辑关系;单链表、双链表、循环链表链接方式上的区别;单链表上实现的建表、查找、插入和删除等基本算法及其时间复杂度。循环链表上尾指针取代头指针的作用,以及单循环链表上的算法与单链表上相应算法的异同点。双链表的定义和相关算法。利用链表设计算法解决简单应用问题。
要求达到<领会>层次的内容就是顺序表和链表的比较,以及如何选择其一作为其存储结构才能取得较优的时空性能。

线性表的逻辑结构特征是很容易理解的,如其名,它的逻辑结构特征就好象是一条线,上面打了一个个结,很形象的,如果这条线上面有结,那么它就是非空表,只能有一个开始结点,有且只能有一个终端结点,其它的结前后所相邻的也只能是一个结点(直接前趋和直接后继)。
关于线性表上定义的基本运算,主要有构造空表、求表长、取结点、查找、插入、删除等。

线性表的逻辑结构和存储结构之间的关系。在计算机中,如何把线性表的结点存放到存储单元中,就有许多方法,最简单的方法就是按顺序存储。就是按线性表的逻辑结构次序依次存放在一组地址连续的存储单元中。在存储单元中的各元素的物理位置和逻辑结构中各结点相邻关系是一致的。
在顺序表中实现的基本运算主要讨论了插入和删除两种运算。相关的算法我们通过练习掌握。对于顺序表的插入和删除运算,其平均时间复杂度均为O(n)。

线性表的链式存储结构。它与顺序表不同,链表是用一组任意的存储单元来存放线性表的结点,这组存储单元可以分布在内存中任何位置上。因此,链表中结点的逻辑次序和物理次序不一定相同。所以为了能正确表示结点间的逻辑关系,在存储每个结点值的同时,还存储了其后继结点的地址信息(即指针或链)。这两部分信息组成链表中的结点结构。
一个单链表由头指针的名字来命名。
对于单链表,其操作运算主要有建立单链表(头插法、尾插法和在链表开始结点前附加一个头结点的算法)、查找(按序号和按值)、插入运算、删除运算等。以上各运算的平均时间复杂度均为O(n).其主要时间是耗费在查找操作上。

循环链表是一种首尾相接的链表。也就是终端结点的指针域不是指向NULL空而是指向开始结点(也可设置一个头结点),形成一个环。采用循环链表在实用中多采用尾指针表示单循环链表。这样做的好处是查找头指针和尾指针的时间都是O(1),不用遍历整个链表了。
判别链表终止的条件也不同于单链表,它是以指针是否等于某一指定指针如头指针或尾指针来确定。

双链表就是双向链表,就是在单链表的每个结点里再增加一个指向其直接前趋的指针域prior,这样形成的链表就有两条不同方向的链。使得从已知结点查找其直接前趋结点可以和查找其直接后继结点的时间一样缩短为O(1)。
双链表一般也由头指针head惟一确定。双链表也可以头尾相链接构成双(向)循环链表。

关于顺序表和链表的比较,请看下表:
具体要求顺序表 链表
基于空间 适于线性表长度变化不大,易于事先确定其大小时采用。 适于当线性表长度变化大,难以估计其存储规模时采用。
基于时间 由于顺序表是一种随机存储结构,当线性表的操作主要是查找时,宜采用。 链表中对任何位置进行插入和删除都只需修改指针,所以这类操作为主的线性表宜采用链表做存储结构。若插入和删除主要发生在表的首尾两端,则宜采用尾指针表示的单循环链表。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式