C语言栈如何进行操作

avatar
作者
猴君
阅读量:0

C语言中的栈是一种后进先出(LIFO)的数据结构,通常用于存储临时变量、函数调用等。在C语言中,栈通常是通过数组或链表来实现的。

操作栈的基本操作包括:

  1. 压栈(Push):将数据压入栈顶。
  2. 弹栈(Pop):从栈顶弹出一个数据。
  3. 获取栈顶元素(Top):获取栈顶的数据,但不弹出。
  4. 判断栈是否为空(isEmpty):判断栈是否为空。
  5. 获取栈的大小(Size):获取栈中元素的个数。

以下是一个使用数组实现栈的示例代码:

#include <stdio.h> #include <stdbool.h>  #define MAX_SIZE 100  typedef struct {     int data[MAX_SIZE];     int top; } Stack;  void init(Stack *s) {     s->top = -1; }  void push(Stack *s, int value) {     if (s->top < MAX_SIZE - 1) {         s->data[++s->top] = value;     } else {         printf("Stack overflow!\n");     } }  int pop(Stack *s) {     if (s->top >= 0) {         return s->data[s->top--];     } else {         printf("Stack is empty!\n");         return -1;     } }  int top(Stack *s) {     if (s->top >= 0) {         return s->data[s->top];     } else {         printf("Stack is empty!\n");         return -1;     } }  bool isEmpty(Stack *s) {     return s->top == -1; }  int size(Stack *s) {     return s->top + 1; }  int main() {     Stack stack;     init(&stack);      push(&stack, 1);     push(&stack, 2);     push(&stack, 3);      printf("Top element: %d\n", top(&stack));      while (!isEmpty(&stack)) {         printf("%d ", pop(&stack));     }     printf("\n");      return 0; } 

在这个示例代码中,我们定义了一个栈结构体Stack,并实现了基本的压栈、弹栈、获取栈顶元素、判断栈是否为空和获取栈的大小等操作。我们可以通过调用这些函数来操作这个栈。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!