共 1 篇文章

标签:C语言中栈的应用

c语言怎么使用栈-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

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

技术分享