关于C语言中栈操作的一个大疑问???

linuxblack125125 linuxblack125125 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
int Pop(SqStack *S,StkType *ch)
{
if(S->top == S->base)
return 0;
--S->top;
*ch=*S->top;
return 1;
}


这是出栈的源码----《数据结构(C语言版)》

作用是若栈不为空,就删除S的栈顶元素,但是这里它只是将top指针往下移了一步,并没有起到删除栈顶元素的作用,如果此时再将S->top++,同样可以再访问到原来的数据。

请各位大侠们说说这个怎么回事?
...全文

相关推荐

C语言创建一个栈+入栈+出栈

C语言_创建一个栈+入栈+出栈 C语言_创建一个栈+入栈+出栈

yesterday679

C语言中栈操作的完整算法实现

在理解数据结构中栈的概念之前,首先需要明确什么是抽象数据类型(ADT)。抽象数据类型是一种以数学和逻辑方式定义的数据类型,它与具体的存储结构和实现算法无关。抽象数据类型定义了一组操作,用于描述数据类型的逻辑功能,而不涉及这些操作的具体实现细节。栈作为一种线性数据结构,具有特定的行为特性,通常被定义为以下的抽象数据类型:初始化:创建一个空栈。判空:判断栈是否为空。入栈(Push):将元素添加到栈顶位置。出栈(Pop):从栈顶移除元素并返回。

苏盆栽

栈的基本操作算法实现(C语言)

NULL 博文链接:https://linuxdev.iteye.com/blog/1148109

weixin_38669628

C语言实现栈的操作

C语言实现栈的基本操作: 1.初始化栈 2.清空栈 3.判断栈是否清空 4.压栈 5.出栈 6.得到栈长度 7.返回栈顶数据 8.遍历栈

forest_open

C语言对栈的实现基本操作

c语言中栈是一种数据结构,后进先出,即最后进入栈的数据最先弹出。c语言中没有栈这种数据类型,需要自己编程构建。下面我们就一起来了解一下c语言中栈的基本操作。 C语言对栈的实现基本操作,操作如下: #include <stdio> #include <malloc> #include <stdlib> #include <stdbool> typedef struct Node { int data; struct Node * pNext; }NODE, * PNODE; typedef struct Stack { PNODE pTop; PNODE pBotto

weixin_38725426
评论 13
收藏 已收藏
分享
返回顶部
linuxblack125125
C语言 70,039 成员 243,237 内容