//顺序栈定义及各类操作
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<stdbool.h>
typedef int Elemtype;
#define MaxSize 10 //定义栈中元素的最大个数
typedef struct SqStack
{
Elemtype data[MaxSize]; //使用静态数组存放栈中元素
int top; //栈顶指针
} SqStack;
//初始化顺序栈
void InitSqStack(SqStack S){
S.top = -1; //初始化栈顶指针
return true;
}
//判断顺序栈是否为空
void IsEmptySqStack(SqStack S){
if (S.top == -1)
return true;
else
return false;
}
//新元素入顺序栈
void PushSqStack(SqStack S, Elemtype e){
if (S.top == (MaxSize - 1))
return false; //栈满
S.data[++S.top] = e; //顶指针加1,新元素入栈
return true;
}
//栈顶元素出顺序栈
void PopSqStack(SqStack S, Elemtype e){
if (S.top == -1)
return false; //空栈,无元素
e = S.data[S.top--];
return true;
}
//读栈顶元素
void GetPopSqStack(SqStack S, Elemtype e){
if (S.top == -1)
return false; //空栈,无元素
e = S.data[S.top];
return true;
}
【数据结构】顺序栈定义及基本操作
最新推荐文章于 2025-07-31 15:54:41 发布
本文介绍顺序栈的基本概念,包括栈的初始化、判断是否为空、元素入栈与出栈等操作,并提供完整的C语言实现代码。
2930

被折叠的 条评论
为什么被折叠?



