c++数据结构顺序栈
时间: 2023-10-04 22:09:15 浏览: 135
C语言中的数据结构顺序栈是一种使用数组来实现的栈结构。顺序栈的特点是先进后出,即最后进入的元素最先出栈。顺序栈可以通过数组的下标来实现元素的进栈和出栈操作。
在C语言中,可以通过定义一个数组和一个栈顶指针来实现顺序栈。栈顶指针指向栈中最后一个元素的位置。当栈为空时,栈顶指针指向-1。
以下是一种实现顺序栈的代码示例:
```c
#define MAX_SIZE 100 // 定义栈的最大容量
typedef struct {
int data[MAX_SIZE]; // 用数组存储栈元素
int top; // 栈顶指针
} SeqStack;
void InitStack(SeqStack *s) {
s->top = -1; // 初始化栈顶指针为-1,表示栈为空
}
int IsEmpty(SeqStack *s) {
return s->top == -1; // 判断栈是否为空
}
int IsFull(SeqStack *s) {
return s->top == MAX_SIZE - 1; // 判断栈是否已满
}
void Push(SeqStack *s, int element) {
if (IsFull(s)) {
printf("Stack is full.\n"); // 栈已满,无法继续入栈
return;
}
s->top++; // 栈顶指针加1
s->data[s->top = element; // 元素入栈
}
int Pop(SeqStack *s) {
if (IsEmpty(s)) {
printf("Stack is empty.\n"); // 栈为空,无法进行出栈操作
return -1;
}
int element = s->data[s->top]; // 获取栈顶元素
s->top--; // 栈顶指针减1
return element;
}
int GetTop(SeqStack *s) {
if (IsEmpty(s)) {
printf("Stack is empty.\n"); // 栈为空,无法获取栈顶元素
return -1;
}
return s->data[s->top]; // 返回栈顶元素
}
```
以上是一个简单的C语言实现顺序栈的代码示例。通过调用相应的函数,可以实现顺序栈的初始化、判断栈是否为空、判断栈是否已满、元素入栈、元素出栈、获取栈顶元素等操作。需要注意的是,在使用顺序栈时,需要注意栈的容量是否足够,以避免栈溢出的情况发生。
阅读全文