2 the king of the king the_king_of_the_king 于 2016.09.07 11:31 提问

栈的栈顶指针指向最后一个元素还是最后一个元素的下一个位置?

满栈时栈顶指向哪里?不满栈时栈顶指向哪里?是否规则相同?求大神赐教

5个回答

ah_107
ah_107   2016.09.24 16:53
已采纳

楼主的说法是比较抽象,实际上堆栈指针总是指向栈顶的第一个元素。当堆栈满了的时候,那么堆栈指针也是指向栈顶第一个元素(也就是最后一个入栈的元素)
当堆栈空的时候,那么此时指针是指向空的。所以也可以理解成指针将指向第一个入栈的元素。望采纳

qq_29594393
qq_29594393   Ds   Rxr 2016.09.07 11:36

指向的永远都是栈顶的第一个元素,除非为空,那指向空

qq_29594393
qq_29594393   Ds   Rxr 2016.09.07 11:38

指向的永远都是栈顶的第一个元素
把元素入栈,栈顶元素变为刚入栈的那个,出栈,指向下一个,
变化的是栈顶元素

mayh554024289
mayh554024289   2016.09.09 09:34

你可以把栈想象成一叠甜甜圈,最上面的那个就是栈顶,你要吃也是先吃它,搜索栈的图片你会明白,并且建议类似问题直接使用搜索引擎效率更高。

qq422243639
qq422243639   2016.10.18 16:56

是这样的,我懂你的意思了,假如有两个元素,指向栈顶的前一个指针指向两个元素中间的位置,而栈顶指针指向第二个元素末尾的位置

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
vector容器的end是指向最后一个元素的下一个位置,使用时要将迭代器减1,才能获取到最后一个
vector容器的end是指向最后一个元素的下一个位置,使用时要将迭代器减1,才能获取到最后一个 原因: Cont是容器的类型,容器中定义了一个此容器所用的游标(迭代器)的类型,叫iterator,于是Cont::iterator it;就定义了一个名叫it的迭代器。 啥?我咋知道容器中怎么定义了iterator这个类型?嘿嘿,这就是一个Concept了。这是约定,这是规矩!STL中所有的容
vector.end()指向的是最后一个元素的下一个位置,所以访问最后一个元素的正确操作为:vector.end() - 1;
向量容器(vector)是一种顺序容器,是一块连续分配的内存,支持随机访问,从数据安排的角度看,和数组极其相似,数组跟vector的区别在于:数组是静态分配空间,一旦分配了空间的大小,就不可以再改变了,例如,int a[6];而vector是动态分配内存,随着元素的不断插入,它会按照自身的一套机制不断扩充自身的容量,vector容器的容量增长是按照容器现在容量的一倍进行增长。   fron
二分查找(返回目标元素的第一个位置、最后一个位置)
二分查找是针对有序数组的查找算法。一般意义上的二分查找,往往返回给我们的是目标元素在排序数组中出现的一个随机的位置,但是在很多时候,我们却是需要目标元素的第一个和最后一个位置,才有意义。本文分别针对最基础的二分查找、返回目标元素的第一个位置、返回目标元素的最后一个位置的进行的代码实现。 class BinarySearch { public:     int getPos(vector A,
取数组的最后一个元素
NSArray *array = @[@"1",@"2",@"3"];     NSLog(@"%@",array[array.count - 1]);     NSLog(@"%@",array.lastObject);
php获取数组的最后一个元素
php获取数组的最后一个元素的方法。使用php内置函数end()。end() 函数将数组内部指针指向最后一个元素,并返回该元素的值(如果成功)。例如:$args=Array('www','phpernote','com'); echo end($args);//com相关的方法: current() - 返回数组中的当前元素的值 next() - 将内部指针指向数组中的下一个元素,并输出 pr
C++ STL 顺序容器访问最后一个元素的方法
遇到个需求,需要实现访问list的最后一个元素,不想通过遍历获取(因为list可能很长)。于是寻找如何方便的访问list的最后一个元素。C++ Primer上面没有很明确的说明,只是说了迭代器 iterator的操作方法和范围。范围是[begin,end),操作有++,--。     于是大胆尝试 iterator it = list.end();it--;竟然神奇的获得了想要的结果。后来转念
C++获得vector最后一个元素
std::vector<int> intVector; intVector[intVector.size() - 1]; // 方式1 intVector.end(); // 方式2
删除数组中的最后一个元素
链接:https://www.nowcoder.com/questionTerminal/df4b0b7a459447538351c4c7008b34e7利用slice()和pop()方法 function(arr) { var m = arr.slice(); m.pop(); return m; } //利用slice function truncate(arr) {
JavaScript 获取数组的最后一个元素
index取值 args[args.length - 1] pop方法 args.pop()注意: pop方法会删除args最后一个元素,并返回
js数组元素怎样删除最后一个元素
var arr = [ 1, 2, 3, 4, 5 ]; //原始数组 alert("原始数组:" + arr);// 1,2,3,4,5 //删除并且返回第一个元素 alert("执行arr.shift() 返回 :" + arr.shift());//1 alert("数组:" + arr);//2,3,4,5 //删除并且返回最后一个元素 alert("执行arr.pop() 返回:" +