连续存储区域
1. 有六个元素以6,5,4,3,2,1的顺序进栈,问哪个不是合法的出栈序列
选5.
是以从大到小的随机顺序入栈,虽然顺序不可控,但是从大到小所以5肯定在6后面入栈,遵循后进先出原则,所以5不可能在6之后出栈,所以一眼看出c是不合法的。
没有规定要一次性进完所有的元素:对于A:先进入6-5,再出5,再进4,再出4,再进3 ,再出3,再出6;再进入2,1,再出1,2;C;先进入6-5-4-3,再出3没错,再出4也没错,再出6就不对,要先出5才行的。
(1)连续存储区域扩展阅读:
栈的顺序存储结构是利用内存中的一片起始位置确定的连续存储区域来存放栈中的所有元素,另外为了指示栈顶的准确位置,还需要引入一个栈顶指示变量top,采用顺序存储结构的栈称为顺序栈(sequence stack)。设数组data[MAXSIZE]为栈的存储空间,其中MAX-SIZE是一个预先设定的常数,为允许进栈结点的最大可能数目,即栈的容量。
2. 什么是变量 什么是对象
变量是用来存储数据的,就像一个箱子,把东西存放进去,然后需要的时候去取出来,对象就是是一个类功能模块的集合,里面有方法和属性,每一个方法能实现一个不同的功能,属性是决定对象执行结果的因素,属性只能“写”和“读”
3. 分段存储管理每一段必须是连续的存储区吗
如果说推动存储管理方式从固定分区到动态分区分配,进而又发展到分页存储管理方式的主要动力,是提高内存利用率,那么,引入分段存储管理方式的目的,则主要是为了满足用户(程序员)在编程和使用上多方面的要求,其中有些要求是其它几种存储管理方式所难以满足的。因此,这种存储管理方式已成为当今所有存储管理方式的基础。
4. 汇编语言中SP寄存器是什么
汇编语言中SP寄存器是指的是堆栈指针寄存器,在堆栈操作中使用,PUSH和POP指令是从SP寄存器得到现行堆栈段的段内偏移量,所以称SP寄存器为堆栈指针,SP始终指向栈顶。
堆栈是计算机中广泛应用的技术,基于堆栈具有的数据进出LIFO特性,常应用于保存中断断点、保存子程序调用返回点、保存CPU现场数据等,也用于程序间传递参数。
(4)连续存储区域扩展阅读
为了更准确地描述堆栈,根据“压栈”操作时堆栈指针的增减方向,将堆栈区分为‘递增栈’(SP 向大数值方向变化)和‘递减堆栈’(SP 向小数值方向变化);
又根据SP 指针指向的存储单元是否含有堆栈数据,又将堆栈区分为‘满堆栈’(SP 指向单元含有堆栈有效数据)和‘空堆栈’(SP 指向单元不含有堆栈有效数据)。
这样两两组合共有四种堆栈方式——满递增、空递增、满递减和空递减。
ARM处理器的堆栈操作具有非常大的灵活性,对这四种类型的堆栈都支持。
参考资料来源:网络-堆栈指针寄存器
5. 栈和队列不是逻辑结构吗,它们的顺序和链式才是存储结构,一题中说栈也是存储结构,请解释一下
栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。
(5)连续存储区域扩展阅读:
栈的顺序存储结构利用内存中的一片起始位置确定的连续存储区域来存放栈中的所有元素,为了指示栈顶的准确位置,还需要引入一个栈顶指示变量top。设数组data[MAXSIZE]为栈的存储空间,其中MAX-SIZE是一个预先设定的常数,为允许进栈结点的最大可能数目。
初始时栈空,top等于0。当top不等于0时,data[0]为栈底元素,即为当前停留在栈中时间最长的元素。而data[top-1]为最后入栈的元素。当top==MAXSIZE时,表示栈满,如果此时再有结点进栈,将发生“上溢”的错误,而当top==0时再执行出栈操作,将发生“下溢”的错误。
6. 连续存储数据时,存储单元的地址()A.一定连续 B一定不连续 C不一定连续 D部分连续
A。
链式存储,存储空间可以不连续,但存储地址必连续。
链式存储设计时,各个不同结点的存储空间可以不连续,但是结点内的存储单元地址则必须连续。
typedef struct LNode {
int value; // value中存放结点值域,默认是int型
struct Lnode *next;//指向后继结点的指针
}LNode; // 定义单链表结点类型
上述定义了一个结构体,包括两部分,一是值域,二是指针域;每当定义一个结点都会产生这两个区域。
这个value与next域必须是挨着的,称这个结点为内部。
(6)连续存储区域扩展阅读:
由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而顺序表相应的时间复杂度分别是O(logn)和O(1)。
使用链表结构可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。但是链表失去了数组随机读取的优点,同时链表由于增加了结点的指针域,空间开销比较大。
7. 什么是系统中存放数据的基本方式
1、顺序存储方式:顺序存储方式就是在一块连续的存储区域一个接着一个的存放数据。顺序存储方式把逻辑上相邻的节点存储在物理位置撒花姑娘相邻的存储单元里,节点间的逻辑关系由存储单元的邻接关系来体现。顺序存储方式也称为顺序存储结构,一般采用数组或结构数组来描述。
2、链接存储方式:链接存储方式比较灵活,不要求逻辑上相邻的节点在物理位置上相邻,节点间的逻辑关系由附加的引用字段来表示。一个节点的引用字段往往指向下一个节点的存放位置。链接存储方式也成为链式存储结构。
3、索引存储方式:索引存储方式是采用附加的索引表的方式来存储节点信息的一种存储方式。索引表由若干索引项组成。索引存储方式中索引项的一般形式为(关键字、地址)。其中,关键字是能够唯一标识一个节点的数据项。索引存储方式还可以细分为如下两类。
稠密索引:这种方式中每个节点在索引表中都有一个索引项,其中索引项的地址知识节点所在的存储位置。
稀疏索引:这种方式中一组节点在索引表中只对应一个索引项。其中,索引项的地址指示一组节点的起始存储位置。
4、散列存储方式:散列存储方式是根据节点的关键字直接计算出该节点的存储地址的一种存储方式。
在实际应用中,往往需要根据具体的数据结构来决定采用哪种存储方式。同一逻辑结构采用不同的存储方法,可以得到不同的存储结构。而且者4中基本存储方法,既可以单独使用,也可以组合起来对数据结构进行存储描述。
8. 常用的存储表示方法有哪几种
摘要 数据结构的存储方式有顺序存储方法、链接存储方法、索引存储方法和散列存储方法这四种。