以下程序中涉及的ElemType类型,都设为char类型。 1. 栈的实现:自行编写完成栈的顺序结构实现函数,包括: (1)InitStack (2)IsEmptyStack(新增函数,如果栈为空,返回1,否则返回0) (3)Push (4)Pop C语言完整代码
时间: 2024-09-25 18:07:14 浏览: 33
用C++实现一个链式栈的实例代码
5星 · 资源好评率100%
在C语言中,如果你想要创建一个使用`char`类型的栈(这里假设我们叫它`CharStack`),你可以按照以下步骤实现:
```c
#include <stdio.h>
#include <stdlib.h> // 引入malloc和free函数
// 定义栈的数据结构,包含存储元素的数组和栈顶指针
typedef struct {
char* elements; // 存储字符的数组
int top; // 栈顶指针
int capacity; // 栈的最大容量
} CharStack;
// 初始化栈,分配内存并设置top为-1表示空栈
void InitStack(CharStack* stack, int capacity) {
stack->elements = (char*)malloc(capacity * sizeof(char));
stack->top = -1;
stack->capacity = capacity;
}
// 判断栈是否为空
int IsEmptyStack(const CharStack* stack) {
return stack->top == -1;
}
// 入栈操作(Push)
void Push(CharStack* stack, char item) {
if(stack->top < stack->capacity - 1) { // 检查是否有空间
stack->elements[++stack->top] = item; // 把item放入元素数组,并更新栈顶指针
} else {
printf("Error: Stack is full.\n"); // 如果已满,打印错误信息
}
}
// 出栈操作(Pop)
char Pop(CharStack* stack) {
if(IsEmptyStack(stack)) {
printf("Error: Stack is empty.\n");
return '\0'; // 返回空字符表示栈已空
} else {
return stack->elements[stack->top--]; // 取出栈顶元素并递减栈顶指针
}
}
阅读全文