+6 投票
分类:学习问题 | 用户: 7 4 (1.2k 分)
从逻辑上可以把数据结构分为非线性和线性。

那么动态结构和静态结构,内部结构和外部结构,紧凑结构和非紧凑结构,分别是从什么方面对数据结构进行划分呀?

请教各位大佬!

1个回答

+4 投票
用户: 10 8 4 (2.7k 分)

首先不是大佬

我们来望文生义:


逻辑上看栈、队列(双端队列、循环列表)这些线性表,它们的逻辑关系是线性的,就是线性结构,对应的,树(森林、堆)、图这种的不是线性结构的就是非线性结构(一种简易粗略没什么意义的划分方式罢了)

<我们称之为逻辑结构>


那紧凑结构和非紧凑结构,一眼储存空间好吧,只有在分配空间的时候才会有“紧凑”这一概念哩。所以数组(顺序储存)就是紧凑结构,链表(链式储存)、散列储存就是非紧凑结构。(参见Python array与list两种数据类型区别)(啊,索引储存怎么算?感觉没必要讨论它)

<我们称之为储存结构/物理结构>


那内部结构和外部结构呢?内部结构是你对数据操作时的数据结构,外部结构是你对数据储存时的数据结构。举个栗子,你电脑里的数据平时待在硬盘里,需要的时候才会进入内存被你操作运算。那么内存里的叫“内部结构”,外存里的叫“外部结构”。(其实就是个小型的数据库啦)

(啊哦~我们知道排序算法分为内部排序和外部内部排序就是排序的过程全部在内存中完成。外部排序在排序的过程中则需要使用到外部存储介质,其排序过程涉及内外存储器数据交换。 )

<我们称之为????>


动态结构和静态结构。数据结构的储存空间预先定好不变的就是静态结构,相反随数据变化实时变化的就是动态结构

<我们称之为????>


以及有空可以看看老师的PPT,上面内容不多的。但你想要的基本都有。

(有的需要自行细挖,仅留给学有余力的同学<笑>)

P.S.最近都没有人上来水贴啊。

欢迎来到 在线问答系统 ,有什么不懂的可以尽管在这里提问,你将会收到社区其他成员的回答。
...