关于C语言中栈操作的一个大疑问???
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语言_创建一个栈+入栈+出栈
C语言中栈操作的完整算法实现
在理解数据结构中栈的概念之前,首先需要明确什么是抽象数据类型(ADT)。抽象数据类型是一种以数学和逻辑方式定义的数据类型,它与具体的存储结构和实现算法无关。抽象数据类型定义了一组操作,用于描述数据类型的逻辑功能,而不涉及这些操作的具体实现细节。栈作为一种线性数据结构,具有特定的行为特性,通常被定义为以下的抽象数据类型:初始化:创建一个空栈。判空:判断栈是否为空。入栈(Push):将元素添加到栈顶位置。出栈(Pop):从栈顶移除元素并返回。
栈的基本操作算法实现(C语言)
NULL 博文链接:https://linuxdev.iteye.com/blog/1148109
C语言实现栈的操作
C语言实现栈的基本操作: 1.初始化栈 2.清空栈 3.判断栈是否清空 4.压栈 5.出栈 6.得到栈长度 7.返回栈顶数据 8.遍历栈
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


