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语言怎么使用栈
转载来于:http://www.csdahua.cn/qtweb/news6/311106.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网