c语言

c语言创建一个栈的方法是什么

小亿
106
2023-11-28 17:15:40
栏目: 编程语言

在C语言中,可以通过以下步骤来创建一个栈:

  1. 定义一个结构体来表示栈的元素:
typedef struct {
   int maxSize;     // 栈的最大容量
   int top;         // 当前栈顶元素的索引
   int* stackArray; // 存储栈元素的数组
} Stack;
  1. 定义栈的相关操作函数,包括初始化栈、入栈、出栈、获取栈顶元素等:
void initStack(Stack* stack, int maxSize) {
   stack->maxSize = maxSize;
   stack->top = -1;
   stack->stackArray = (int*)malloc(maxSize * sizeof(int));
}

void push(Stack* stack, int element) {
   if (stack->top == stack->maxSize - 1) {
      printf("栈已满,无法入栈\n");
      return;
   }
   stack->stackArray[++(stack->top)] = element;
}

int pop(Stack* stack) {
   if (stack->top == -1) {
      printf("栈已空,无法出栈\n");
      return -1;
   }
   return stack->stackArray[(stack->top)--];
}

int top(Stack* stack) {
   if (stack->top == -1) {
      printf("栈已空\n");
      return -1;
   }
   return stack->stackArray[stack->top];
}
  1. 使用栈的相关操作函数来创建和操作栈:
int main() {
   Stack stack;
   int maxSize = 10; // 假设栈的最大容量为10
   initStack(&stack, maxSize); // 初始化栈

   // 入栈
   push(&stack, 1);
   push(&stack, 2);
   push(&stack, 3);

   // 出栈
   printf("%d\n", pop(&stack)); // 输出3
   printf("%d\n", pop(&stack)); // 输出2

   // 获取栈顶元素
   printf("%d\n", top(&stack)); // 输出1

   return 0;
}

以上代码演示了如何创建一个栈,并进行入栈、出栈、获取栈顶元素的操作。

0
看了该问题的人还看了