表头端称为栈底。
表尾端称为栈顶,不含元素的空表称为空栈。栈又称为后进先出的线性表(lifo结构)。
栈是限定仅在表尾进行插入或删除操作的线性表。
插入元素的操作叫做入栈,删除栈顶元素的操作叫做出栈。
栈有两种存储方法:顺序栈和链式栈。
栈的顺序存储结构是利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素在顺序栈中的位置。
栈顶指针指向栈顶元素下一位置,有栈底指针,这个权威,,,这是最新的
1、运算规则不同,栈是只允许在一端进行插入、删除运算,因而是后进先出表lifo;队列是只允许在一端进行插入、另一端进行删除运算,因而是先进先出表fifo。
2、用途不同,栈用于子程调用和保护现场,队列用于多道作业处理、指令寄存及其他运算等等。
栈的顺序存储空间为s(1:50),初始状态为top0。
现经过一系列入栈与退栈运算后,top20,则栈顶-栈底20-020个元素。
栈是向上增长的,每次压入一个元素,栈的top指针向上移动一位。当压入第一个元素时,top指针指向m1-1m当压入第二个元素时,top指针指向m1-2m-1。
以此类推,当压入第n个元素时,top指针指向m1-n20则nm1-20m-19。栈的顺序存储空间为s(1:50),初始状态为top0。
现经过一系列入栈与退栈运算后,top20,则栈顶-栈底20-020个元素。
一般平时是从栈底向栈顶压,这道题目中是倒过来的,这个栈是从栈顶向栈底压的,所以结果是c。top是指向最后一个元素上面的那个,所以是m1。
指针是可以参与加减运算的,最简单的例子就是*p。
一个指针(int*p)加上一个整数n,表示从p指向的地址向后移动n*sizeof(int)个字节,得到的新地址。
相当于上述的int*p,相当于整数n。即得到的新地址。
是栈底指针,是栈长,是栈顶指针。