1、编写使用实现进栈、出栈、显示栈中全部元素的程序。(顺序栈或链栈) 程序如下:
时间: 2023-06-06 09:06:04 浏览: 171
链栈的基本运算-c语言 栈的顺序和链式实现代码ppt
以下是一个基于顺序栈实现的进栈、出栈、显示栈中全部元素的程序,你可以参考一下:
#include<stdio.h>
#include<stdlib.h>
#define STACK_SIZE 100 //栈的最大大小
typedef int ElemType; //栈中元素的类型
typedef struct{
ElemType stackArr[STACK_SIZE]; //栈数组
int top; //栈顶指针
} SeqStack;
//初始化栈
void InitStack(SeqStack *s){
s->top = -1;
}
//判断栈是否为空
int StackIsEmpty(SeqStack *s){
return s->top == -1;
}
//判断栈是否已满
int StackIsFull(SeqStack *s){
return s->top == STACK_SIZE - 1;
}
//入栈
int Push(SeqStack *s, ElemType value){
if(StackIsFull(s)){ //判断栈是否已满
printf("Stack is full!");
return 0;
}
s->top++;
s->stackArr[s->top] = value;
return 1;
}
//出栈
int Pop(SeqStack *s, ElemType *value){
if(StackIsEmpty(s)){ //判断栈是否为空
printf("Stack is empty!");
return 0;
}
*value = s->stackArr[s->top];
s->top--;
return 1;
}
//显示栈中全部元素
void DisplayStack(SeqStack *s){
if(StackIsEmpty(s)){ //判断栈是否为空
printf("Stack is empty!");
return;
}
int i;
printf("The elements in the stack are: ");
for(i = s->top; i >= 0; i--){
printf("%d ", s->stackArr[i]);
}
printf("\n");
}
int main(){
SeqStack s;
InitStack(&s);
Push(&s, 1);
Push(&s, 2);
Push(&s, 3);
DisplayStack(&s);
ElemType value;
Pop(&s, &value);
printf("The poped element is: %d\n", value);
DisplayStack(&s);
return 0;
}
阅读全文