A. 栈的顺序存储空间s(1:m)是什么意思
根据题意,栈空间如图所示:
也就是说,栈是向上增长的,每次压入一个元素,栈的TOP指针向上移动一位。
当压入第一个元素时,TOP指针指向m+1-1 = m
当压入第二个元素时,TOP指针指向m+1-2 = m-1
......
以此类推,
当压入第N个元素时,TOP指针指向m+1-N = 20
则N = m+1-20 = m-19
选C。
B. 栈的两种存储结构各有哪些优缺点
顺序 存储结构:
优点:连续存储,空间利用率高
缺点:不方便数据的增删
链式存储结构:
优点:对于数据的增删比较方便
缺点:浪费空间
C. 栈的存储空间:1—m,top=1,不就是在栈顶吗,插入一个,top=2,这样理解哪里不对
栈是先进后出的嘛,栈顶一开始是m+1,那么入站一个元素后,栈顶将变成m,相当于减1。如果你不好想象,我举个例子。如果你把一个杯子打上刻度,杯口是1,杯底是10,杯子的大小刚好能放进一个橘子,如果我们认为一开始杯底是栈顶,也就是10,那么放一个橘子之后,杯底就变成9了,因为你不能再把东西放到比9大的地方,同理,8、7、6,如果你往外拿一个橘子,也是先拿上面的,这就是先进后出,后进先出。
D. 堆栈的存储方式
堆栈 堆栈是一个在计算机科学中经常使用的抽象数据类型。堆栈中的物体具有一个特性: 最后一个放入堆栈中的物体总是被最先拿出来, 这个特性通常称为后进先处(LIFO)队列. 堆栈中定义了一些操作. 两个最重要的是PUSH和POP。 PUSH操作在堆栈的顶部加入一 个元素。POP操作相反, 在堆栈顶部移去一个元素, 并将堆栈的大小减一。 --------抄的,不过应是这个
E. 栈的顺序存储是什么
由于栈是运算受限的线性表,因此线性表的存储结构对栈也适用,而线性表有顺序存储和链式存储两种,所以栈也有顺序存储和链式存储两种。
1.栈的顺序存储栈的顺序存储是利用一组地址连续的存储单元依次存放从栈底到栈顶的数据元素,并附设指针top指示栈顶。
2.栈的顺序存储类型定义1)用内存动态分配方式定义栈的顺序存储(1)栈的顺序存储表示。
顺序栈本质上是顺序表的简化,由于栈底位置是固定不变的,所以可以将栈底位置设置在存储空间的基地址上,栈顶位置是随着进栈和退栈操作而变化的,故用top来指示当前栈顶元素的下一个位置,通常称top为栈顶指针。
F. 栈和队列的存储方式
栈和队列都是在一个特定范围的存储单元中存储的数据,这些数据都可以重新被取出使用。不同的是,栈就象一个很窄的桶先存进去的数据只能最后才能取出来,而且队列则不一样,即“先进后出”。队列有点象日常排队买东西的人的“队列”先牌队的人先买,后排队的人后买,即“先进先出”。有时在数据结构中还有可能出现按照大小排队或按照一定条件排队的数据队列,这时的队列属于特殊队列,就不一定按照“先进先出”的原则读取数据了。
G. 给出栈的两种存储结构的形式名称,在这两种栈的存储结构中如何判别栈空与栈满
【解答】(1)顺序栈 (top用来存放栈顶元素的下标)
判断栈S空:如果S->top==-1表示栈空。
判断栈S满:如果S->top==Stack_Size-1表示栈满。 (2) 链栈(top为栈顶指针,指向当前栈顶元素前面的头结点) 判断栈空:如果top->next==NULL表示栈空。
判断栈满:当系统没有可用空间时,申请不到空间存放要进栈的元素,此时栈满。
H. 栈只能顺序存储,这句话对吗,为什么
栈只能顺序存储,这句话不对。栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom)。
一个新元素只能从栈顶一端进入,删除时,只能删除栈顶的元素,即刚刚被插入的元素。所以栈也称为后进先出表。线性表可以顺序存储,也可以链式存储,因此栈也可以采用链式存储结构。
(8)栈的存储空间方式扩展阅读:
栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。插入一般称为进栈(PUSH),删除则称为退栈(POP)。栈也称为后进先出表。
在计算机系统中,栈则是一个具有以上属性的动态内存区域。程序可以将数据压入栈中,也可以将数据从栈顶弹出。在i386机器中,栈顶由称为esp的寄存器进行定位。压栈的操作使得栈顶的地址减小,弹出的操作使得栈顶的地址增大。
栈在程序的运行中有着举足轻重的作用。最重要的是栈保存了一个函数调用时所需要的维护信息,这常常称之为堆栈帧或者活动记录。堆栈帧一般包含如下几方面的信息:
1、函数的返回地址和参数。
2、临时变量:包括函数的非静态局部变量以及编译器自动生成的其他临时变量。
链式存储结构的特点:
1、比顺序存储结构的存储密度小(链式存储结构中每个结点都由数据域与指针域两部分组成,相比顺序存储结构增加了存储空间)。
2、逻辑上相邻的节点物理上不必相邻。
3、插入、删除灵活 (不必移动节点,只要改变节点中的指针)。
4、查找节点时链式存储要比顺序存储慢。
5、每个节点是由数据域和指针域组成。
6、由于簇是随机分配的,这也使数据删除后覆盖几率降低,恢复可能提高。
顺序存储结构的主要优点是节省存储空间,因为分配给数据的存储单元全用存放结点的数据(不考虑c/c++语言中数组需指定大小的情况),结点之间的逻辑关系没有占用额外的存储空间。
采用这种方法时,可实现对结点的随机存取,即每一个结点对应一个序号,由该序号可以直接计算出来结点的存储地址。但顺序存储方法的主要缺点是不便于修改,对结点的插入、删除运算时,可能要移动一系列的结点。
参考资料:网络-栈
参考资料:网络-链式存储结构
参考资料:网络-顺序存储结构
I. 栈结构通常采用的两种储存结构是和
顺序存储和链接存储,通称顺序队列和链队列,
是计算机科学中一种特殊的串行形式的抽象数据类型,其特殊之处在于只能允许在链表或数组的一端(称为堆栈顶端指针,英语:top)。
进行加入数据(英语:push)和输出数据(英语:pop)的运算。另外堆栈也可以用一维数组或链表的形式来完成。堆栈的另外一个相对的操作方式称为队列。
由于堆栈数据结构只允许在一端进行操作,因而按照后进先出(LIFO, Last In First Out)的原理运作。
堆栈数据结构使用两种基本操作:推入(压栈,push)和弹出(弹栈,pop):
推入:将数据放入堆栈的顶端(数组形式或串行形式),堆栈顶端top指针加一。
弹出:将顶端数据数据输出(回传),堆栈顶端数据减一。
(9)栈的存储空间方式扩展阅读:
堆栈是一个特定的存储区或寄存器,它的一端是固定的,另一端是浮动的。对这个存储区存入的数据,是一种特殊的数据结构。所有的数据存入或取出,只能在浮动的一端(称栈顶)进行,严格按照“后进先出”的原则存取,位于其中间的元素。
必须在其栈上部(后进栈者)诸元素逐个移出后才能取出。在内存储器 (随机存储器) 中开辟一个区域作为堆栈,叫软件堆栈; 用寄存器构成的堆栈,叫硬件堆栈。堆栈处理器就是一种硬件堆栈相对寄存器文件处理器来讲。
它具有很多优点系统复杂度低;精简的指令集;芯片面积小;寻址方式简单;代码体积小;快速的中断响应,子程序调用能力。这些优点使得堆栈处理器在工业控制领域和航空航天领域有着不可替代的地位。
J. 堆栈的存储方式
堆栈
堆栈是一个在计算机科学中经常使用的抽象数据类型。堆栈中的物体具有一个特性:
最后一个放入堆栈中的物体总是被最先拿出来,
这个特性通常称为后进先处(LIFO)队列.
堆栈中定义了一些操作.
两个最重要的是PUSH和POP。
PUSH操作在堆栈的顶部加入一
个元素。POP操作相反,
在堆栈顶部移去一个元素,
并将堆栈的大小减一。
--------抄的,不过应是这个