首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

栈满时top指针在哪里(有关问题在图片里)

2013-11-25 
栈满时top指针在哪里(问题在图片里)Status Push(SqStack *S,SElemType e) { /* 插入元素e为新的栈顶元素 *

栈满时top指针在哪里(问题在图片里)
栈满时top指针在哪里(有关问题在图片里)

Status Push(SqStack *S,SElemType e)
 { /* 插入元素e为新的栈顶元素 */
   if((*S).top-(*S).base>=(*S).stacksize) /* 栈满,追加存储空间 */
   {
     (*S).base=(SElemType *)realloc((*S).base,((*S).stacksize+STACKINCREMENT)*sizeof(SElemType));
     if(!(*S).base)
       exit(OVERFLOW); /* 存储分配失败 */
     (*S).top=(*S).base+(*S).stacksize;
     (*S).stacksize+=STACKINCREMENT;
   }
   *((*S).top)++=e;
   return OK;
 }
栈 c语言 数据结构
[解决办法]
看实现。
你可以任意处理。
大概有这么两种方式:
1)初始化为第一个元素,则满时顶在栈外
2)初始化为下一个元素是第一个元素,则满时顶在最后一个元素。

估计多半都是第一种方式。

[解决办法]
引用:
Quote: 引用:

看实现。
你可以任意处理。
大概有这么两种方式:
1)初始化为第一个元素,则满时顶在栈外
2)初始化为下一个元素是第一个元素,则满时顶在最后一个元素。

估计多半都是第一种方式。
我看的是严蔚敏老师的书,上面说栈顶指针指向栈顶元素的下一个位置,如图,栈满时不就非法了吗?

你不去用这个栈顶指针访问里面的数据就可以了。你应该判断下这个指针是否超过了有效地址,超过了就是栈满。

热点排行