c语言怎么编写一个基本的顺序栈
导读:以下是一个基本的顺序栈的C语言实现示例: #include <stdio.h> #include <stdlib.h> #define MAX_SIZE 100 typedef struct { int...
以下是一个基本的顺序栈的C语言实现示例:
#include stdio.h>
#include stdlib.h>
#define MAX_SIZE 100
typedef struct {
int data[MAX_SIZE];
int top;
}
Stack;
void initStack(Stack *s) {
s->
top = -1;
}
int isEmpty(Stack *s) {
return s->
top == -1;
}
int isFull(Stack *s) {
return s->
top == MAX_SIZE - 1;
}
void push(Stack *s, int value) {
if (isFull(s)) {
printf("Stack is full\n");
return;
}
s->
top++;
s->
data[s->
top] = value;
}
int pop(Stack *s) {
if (isEmpty(s)) {
printf("Stack is empty\n");
return -1;
}
int value = s->
data[s->
top];
s->
top--;
return value;
}
int peek(Stack *s) {
if (isEmpty(s)) {
printf("Stack is empty\n");
return -1;
}
return s->
data[s->
top];
}
int main() {
Stack stack;
initStack(&
stack);
push(&
stack, 10);
push(&
stack, 20);
push(&
stack, 30);
printf("Top element: %d\n", peek(&
stack));
printf("Popped element: %d\n", pop(&
stack));
printf("Popped element: %d\n", pop(&
stack));
printf("Popped element: %d\n", pop(&
stack));
printf("Is stack empty: %s\n", isEmpty(&
stack) ? "true" : "false");
return 0;
}
这段代码定义了一个基本的顺序栈数据结构,包括初始化栈、判断栈是否为空或满、入栈、出栈、获取栈顶元素的操作。在main函数中,进行了栈的初始化、入栈、出栈等操作,并打印了一些信息。
您可以根据自己的需求对该代码进行修改和扩展。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: c语言怎么编写一个基本的顺序栈
本文地址: https://pptw.com/jishu/632701.html
