c语言入栈出栈代码怎么写

网友投稿 178 2023-12-26

以下是一个简单的 C 语言实现栈的代码示例:

#include<stdio.h> #include<stdbool.h> #define MAX_SIZE 100 // 定义栈结构 typedef struct { int data[MAX_SIZE]; int top; // 栈顶指针 } Stack; // 初始化栈 voidinitStack(Stack *s){ s->top = -1; }// 判断栈是否为空 boolisEmpty(Stack *s){ return s->top == -1; } // 判断栈是否已满 boolisFull(Stack *s){ returns->top == MAX_SIZE -1; } // 入栈 voidpush(Stack *s, int value){ if (isFull(s)) { printf("Stack overflow\n"); return; } s->top++; s->data[s->top] = value; } // 出栈 intpop(Stack *s){ if (isEmpty(s)) { printf("Stack underflow\n"); return -1; } intvalue = s->data[s->top]; s->top--;return value; } // 获取栈顶元素 intpeek(Stack *s){ if (isEmpty(s)) { printf("Stack underflow\n"); return -1; } return s->data[s->top]; } // 打印栈中的元素 voidprintStack(Stack *s){ if(isEmpty(s)) {printf("Stack is empty\n"); return; } printf("Stack elements: "); for (int i = 0; i <= s->top; i++) {printf("%d ", s->data[i]); } printf("\n"); } intmain(){ Stack stack; initStack(&stack); push(&stack, 10); push(&stack, 20); push(&stack, 30); printStack(&stack); // 输出:Stack elements: 10 20 30 int poppedValue = pop(&stack); printf("Popped value: %d\n", poppedValue); // 输出:Popped value: 30 int topValue = peek(&stack); printf("Top value: %d\n", topValue); // 输出:Top value: 20 return 0; }

上述代码中,首先定义了一个结构体 Stack,包含一个数组 data 作为栈的存储空间,以及一个整型变量 top 作为栈顶指针。

然后,定义了一些栈的操作函数:initStack 用于初始化栈,isEmpty 和 isFull 用于判断栈是否为空或已满,push 用于入栈,pop 用于出栈,peek 用于获取栈顶元素,以及 printStack 用于打印栈中的元素。

在 main 函数中,首先通过调用 initStack 初始化了一个栈 stack,然后通过调用 push 将元素压入栈中,再通过调用 printStack 打印栈中的元素。

接着,通过调用 pop 函数将栈顶元素出栈,并打印出栈的元素值。

最后,通过调用 peek 函数获取栈顶元素值,并打印栈顶元素。

购买使用服务器,可以极大降低初创企业、中小企业以及个人开发者等用户群体的整体IT使用成本,无需亲自搭建基础设施、简化了运维和管理的日常工作量,使用户能够更专注于自身的业务发展和创新。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:怎么用c语言实现动画效果
下一篇:python并行处理数据怎么实现
相关文章

 发表评论

暂时没有评论,来抢沙发吧~