c语言怎么使用栈

在C语言中,可以使用数组或链表来实现栈,下面将详细介绍如何使用数组实现栈,并提供相应的代码示例。

c语言怎么使用栈
(图片来源网络,侵删)

1、定义栈结构体:

“`c

typedef struct {

int top; // 栈顶指针

int capacity; // 栈的容量

int* array; // 存储元素的数组

} Stack;

“`

2、初始化栈:

“`c

Stack* createStack(int capacity) {

Stack* stack = (Stack*)malloc(sizeof(Stack));

stack>capacity = capacity;

stack>top = 1; // 初始时栈为空,栈顶指针指向1

stack>array = (int*)malloc(stack>capacity * sizeof(int));

return stack;

}

“`

3、判断栈是否为空:

“`c

int isEmpty(Stack* stack) {

return stack>top == 1;

}

“`

4、判断栈是否已满:

“`c

int isFull(Stack* stack) {

return stack>top == stack>capacity 1;

}

“`

5、入栈操作:

“`c

void push(Stack* stack, int item) {

if (isFull(stack)) {

printf("Stack is full!

");

return;

}

stack>array[++stack>top] = item; // 将元素压入栈顶,并更新栈顶指针

}

“`

6、出栈操作:

“`c

int pop(Stack* stack) {

if (isEmpty(stack)) {

printf("Stack is empty!

");

return 1; // 返回特殊值表示栈为空

}

return stack>array[stack>top]; // 弹出栈顶元素,并更新栈顶指针

}

“`

7、获取栈顶元素:

“`c

int peek(Stack* stack) {

if (isEmpty(stack)) {

printf("Stack is empty!

");

return 1; // 返回特殊值表示栈为空

}

return stack>array[stack>top]; // 返回栈顶元素,不更新栈顶指针

}

“`

8、释放栈内存:

“`c

void freeStack(Stack* stack) {

free(stack>array); // 释放存储元素的数组内存空间

free(stack); // 释放栈结构体内存空间

}

“`

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/418227.html

(0)
未希新媒体运营
上一篇 2024-04-01 10:25
下一篇 2024-04-01 10:26

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购  >>点击进入