llgd.net
当前位置:首页 >> 数据结构E=*%%s.top什么意思? >>

数据结构E=*%%s.top什么意思?

优先级 '.' > "--" = '*', 所以是e = *(--(s.top)) s是stack s.top有两种可能 一是指向栈顶元素的指针 二是指向比栈顶元素更高一层的空元素 从这里的实际情况来看,我判断是第二种情况,当s.top==0时,栈为空。 --s.top是递减指针,这时s.top就...

在计算机领域,堆栈是一个不容忽视的概念,堆栈是两种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。在单片机应用中,堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护...

从你的代码看应该是C语言或C++吧。 在代码中s应该是一个结构体指针,结构体中包括用于存储压入栈数据数组data[],和表示栈顶的变量top(一般栈为空时 top=-1,压入一个加1)因而s->data[s->top]的意思就是:最后压入的数据,也就是栈顶的数据。例...

S->top 是变量 含义就是: *(S->top)=e; // 先对指针指向的块送值 S->top=S->top+1; // 再指针增一

top就是栈顶指针,栈是一个只针对栈顶元素操作的数据结构,也就是说所有的操作的改变只是栈顶指针,出栈top--,入栈top++,获取栈顶元素data[top]

++top是先+1再运算,所以是从0开始的 而TOP++是先运算再加1,所以是从-1开始的

-1在编程中通常作为错误代码或特殊状态处理。 在C语言中,数组的编号从0开始到n,那么常用-1表示未指定数组中的某个元素或数组长度为0,无法指向任何一个元素。

没有问题,那个top永远指向没有元素待插入的位置(也就是栈顶元素位置的下一个下标),而不是指向栈顶元素的位置 你说的那种方式是top指向栈顶元素的位置,所以入栈变成了*++top = e,出栈成了e = *top--;了

int pop (sqstack &s, int &e)//删除s的栈顶元素,用e返回其值;{//&e是代表对e的引用,这样在函数pop里面改变e的值,实参也会改变//比如 int x;pop(&s, x);这样就可以把值通过x返回 if(s.top==s.base) return 0; e= *--s.top; return 1;}int pu...

答案为C。 当top==0时,栈为空。 出栈时,先移动栈顶指针,再取出栈顶指针指向的元素。 示意图如下:

网站首页 | 网站地图
All rights reserved Powered by www.llgd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com