您的位置:首页 > 其它

关于栈的弹出函数设计是否应该有两个返回值,一个表示数据,一个表示是否栈为空

2008-04-10 02:33 597 查看
在我的书中有一个栈的设计,有人对此提出质疑,认为栈的弹出函数应该设计两个返回值,一个表示弹出的数据,
另一个表示栈是否为空。他的理由是当栈中如果压入一个空指针时,返回值是NULL时并不表示栈为空。
老实说我对栈的弹出函数设计两个返回值是不赞同的,这样会严重影响效率。欢迎大家讨论。
我的书中栈的弹出函数如下:
 /** 栈的弹出函数,弹出栈顶数据,
    弹出的数据需要调用者自行释放掉。
 @param STACK * pStack - 栈指针 
    @return void * - 成功返回栈顶数据,栈为空则返回NULL 
*/
void * Stack_Pop( STACK * pStack )
{
     void *pData;
     if ( pStack == NULL || pStack->uTop == 0 )
     {
         return NULL;
     }
     pStack->uTop -= 1;
     pData = pStack->ppBase[pStack->uTop];
 
     return pData;
}
 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐