云主机测评网云主机测评网云主机测评网

云主机测评网
www.yunzhuji.net

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); // 释放栈结构体内存空间

}

“`

打赏
版权声明:主机测评不销售、不代购、不提供任何支持,仅分享信息/测评(有时效性),自行辨别,请遵纪守法文明上网。
文章名称:《c语言怎么使用栈》
文章链接:https://www.yunzhuji.net/jishujiaocheng/29930.html

评论

  • 验证码