C语言建立顺序栈,根据输入的栈中元素个数n和各元素值建立一个顺序栈,并输出栈中各元素值。
时间: 2024-02-03 13:12:56 浏览: 108
用c语言来实现顺序栈
5星 · 资源好评率100%
下面是一个简单的C语言程序,用于建立顺序栈,根据输入的元素数量和值。程序使用数组来实现栈数据结构。
```c
#include <stdio.h>
#define MAXSIZE 100 // 定义栈的最大容量
typedef struct{
int data[MAXSIZE]; // 存储栈中元素的数组
int top; // 栈顶指针
}SqStack;
void InitStack(SqStack *s){ // 初始化栈
s->top = -1;
}
int Push(SqStack *s, int x){ // 入栈操作
if(s->top == MAXSIZE - 1){ // 栈已满
return 0;
}
s->data[++s->top] = x; // 栈顶指针加1,将元素压入栈顶
return 1;
}
int Pop(SqStack *s, int *x){ // 出栈操作
if(s->top == -1){ // 栈已空
return 0;
}
*x = s->data[s->top--]; // 取出栈顶元素,栈顶指针减1
return 1;
}
int main(){
SqStack s;
InitStack(&s); // 初始化栈
int n, x;
printf("请输入栈中元素个数n:");
scanf("%d", &n);
printf("请输入栈中各元素值:\n");
for(int i = 0; i < n; i++){
scanf("%d", &x);
Push(&s, x); // 入栈
}
printf("栈中各元素值为:");
while(Pop(&s, &x)){ // 出栈并输出元素值
printf("%d ", x);
}
printf("\n");
return 0;
}
```
程序首先定义了一个SqStack结构体,包含一个数组data和一个整型变量top,用于存储栈中元素和栈顶指针。InitStack函数用于初始化栈,将栈顶指针top设为-1。Push函数实现入栈操作,当栈已满时返回0,否则将元素压入栈顶,并将栈顶指针加1。Pop函数实现出栈操作,当栈已空时返回0,否则将栈顶元素取出,并将栈顶指针减1。
在main函数中,程序首先调用InitStack函数初始化栈。然后通过scanf函数读入栈中元素个数n和各元素值,并使用Push函数将元素压入栈中。最后使用Pop函数出栈并输出栈中各元素值。
阅读全文