一、出栈后的栈顶元素是什么?
栈是一种数据结构,一个栈相当于一个盒子,把东西(数据)放入盒子里的过程叫做入栈,把东西从盒子里取出来的过程叫做出栈。
栈还有一个特殊的规则,就是先进后出,即盒子里的东西只能叠加摆放,放进去的下一件东西只能堆在前一件东西的上面,取出时只能先取出盒子最上面的一件东西。出栈也就是将栈指针所指的数据从栈中弹出的过程,每一次出栈的一定是栈顶元素,出栈后栈指针向下移动一位指向下一个元素。习惯上入栈用PUSH表示,出栈用POP表示。
二、栈底至栈顶依次存放元素A、B、C、D?
出栈序列可能是:DCBEA,选择D选项。 知识点:栈和队列的定义;栈和队列的顺序存储结构及其基本运算。 解析:栈操作原则上“后进先出”,栈底至栈顶依次存放元素A、B、C、D,则表明这4个元素中D是最后进栈,B、C处于中间,A最早进栈。所以出栈时一定是先出D,再出C,最后出A。
三、8086汇编,栈顶是高地址还是低地址?
栈顶是低地址,栈底是高地址,esp指向的内存位置永远是栈顶,第一个进栈的数据是在栈底
你说的 1040H是栈顶,1080H是栈底,由于8086是16位的,所以每次入栈是2个字节,所以第一个数据占用的内存是 107FH和1080H
四、栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是___?
这个应该是选择体吧。有哪些答案是正确的。栈是先进后出。D,C,B分别出栈,然后E进栈和出栈,最后A出栈。新元素进栈钱,栈里的元素不用清空。
五、栈元素规则?
先进后出,不一定要全部入栈之后再出栈,没入栈完也可以先出栈。
六、队列,栈的指针,是指向队头,尾,栈底,栈顶所在元素的位置吗?
看实现编码的约定,如果是链表,队头和栈顶指针也许指向的是头结点,而并不是队头和栈顶元素的位置 如果是顺序存储,队列和栈的下标也许是下一个位置,也有可能是前一个位置,这个都得看代码是怎样设定的
七、栈顶和栈底的区别?
区别:使用效果不同,位置不同。
八、关于汇编语言问题,入栈出栈什么用?
汇编语言中堆栈的操作有专门的语句指令。
入栈指令是:PUSH
出栈指令是:POP
比如:
MOV A,30H ;将一个压缩BCD码送累加器A
PUSH ACC ;压栈保护
ANL A,#0FH ;保留低四位
MOV 30H,A ;回送给30H
POP ACC ;出栈
SWAP A ;高低四位互换
ANL A,#0FH ;保留低四位
MOV B,#10 ;B送10
MUL AB ;乘10
ADD A,30H ;与个位相加
MOV 30H,A ;回送给30H
以上程序段将一个压缩BCD码转换为十六进制。
九、如何按现栈底再栈顶的顺序打印一个栈里的所有的元素 (java)?
如果这个栈是你自己写的,那你自己知道每一个元素,就可以一个个按你想要的顺序打印。如果这个栈的类是别人写的,别人之提供给你push,pop方法,那么估计也只有全部pop出来这种方法了 ================================================================== 哦,你的意思是栈虽然是你自己写的,但是你用的时候却需要反过来遍历,而不是说在栈的内部做这个遍历?那么在外部的话我觉得是没有好办法的,因为栈只有那两个操作,除非像java的Stack那样,还提供了整个线性表的功能。但是如果是你需要反过来遍历的话,我觉得这就不适合用栈这种数据结构啊 ================================================================= 用什么数据结构要看你什么需求,比如你做的事情的确是栈的概念,你也的确只需要出栈,进栈的操作的话,那么你只需要栈就可以了。你现在要遍历整个集合,那就用最普通的顺序表好了
十、元素进栈的操作?
如果栈正常,出栈顺序只能是123456栈的原则是fifo,先进先出
- 相关评论
- 我要评论
-