用c语言编写建立链栈,并在链栈上实现入栈和出栈操作,编程实现如下功能: 1.根据输入的栈中元素个数n和各元素值建立一个顺序栈,并输出栈中各元素值。 2.将数据元素e入栈,并输出入栈后的顺序栈中各元素值。 3.将顺序栈中的栈顶元素出栈,并输出出栈元素的值和出栈后顺序栈中各元素值。
时间: 2024-02-03 13:13:24 浏览: 43
以下是用C语言编写的链栈及相关操作的实现:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链栈的结构体
typedef struct node {
int data;
struct node *next;
} StackNode, *LinkStack;
// 初始化链栈
void InitStack(LinkStack *s) {
*s = NULL;
}
// 判断链栈是否为空
int StackEmpty(LinkStack s) {
return s == NULL;
}
// 入栈操作
int Push(LinkStack *s, int e) {
StackNode *p = (StackNode *)malloc(sizeof(StackNode));
if (p == NULL) {
return 0;
}
p->data = e;
p->next = *s;
*s = p;
return 1;
}
// 出栈操作
int Pop(LinkStack *s, int *e) {
if (StackEmpty(*s)) {
return 0;
}
StackNode *p = *s;
*e = p->data;
*s = (*s)->next;
free(p);
return 1;
}
// 输出链栈中的元素
void PrintStack(LinkStack s) {
printf("Stack: ");
while (s != NULL) {
printf("%d ", s->data);
s = s->next;
}
printf("\n");
}
int main() {
LinkStack s;
int n, e, i;
printf("请输入要创建的链栈的元素个数n: ");
scanf("%d", &n);
InitStack(&s);
printf("请输入%d个元素的值:\n", n);
for (i = 0; i < n; i++) {
scanf("%d", &e);
Push(&s, e);
}
PrintStack(s);
printf("请输入要入栈的元素的值:\n");
scanf("%d", &e);
Push(&s, e);
PrintStack(s);
printf("出栈操作:\n");
while (!StackEmpty(s)) {
Pop(&s, &e);
printf("出栈元素:%d\n", e);
PrintStack(s);
}
return 0;
}
```
运行结果如下:
```
请输入要创建的链栈的元素个数n: 4
请输入4个元素的值:
1 2 3 4
Stack: 4 3 2 1
请输入要入栈的元素的值:
5
Stack: 5 4 3 2 1
出栈操作:
出栈元素:5
Stack: 4 3 2 1
出栈元素:4
Stack: 3 2 1
出栈元素:3
Stack: 2 1
出栈元素:2
Stack: 1
出栈元素:1
Stack:
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)