c語言創(chuàng)建一個(gè)棧的方法是什么

小億
115
2023-11-28 17:15:40
欄目: 編程語言

在C語言中,可以通過以下步驟來創(chuàng)建一個(gè)棧:

  1. 定義一個(gè)結(jié)構(gòu)體來表示棧的元素:
typedef struct {
   int maxSize;     // 棧的最大容量
   int top;         // 當(dāng)前棧頂元素的索引
   int* stackArray; // 存儲(chǔ)棧元素的數(shù)組
} Stack;
  1. 定義棧的相關(guān)操作函數(shù),包括初始化棧、入棧、出棧、獲取棧頂元素等:
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. 使用棧的相關(guān)操作函數(shù)來創(chuàng)建和操作棧:
int main() {
   Stack stack;
   int maxSize = 10; // 假設(shè)棧的最大容量為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;
}

以上代碼演示了如何創(chuàng)建一個(gè)棧,并進(jìn)行入棧、出棧、獲取棧頂元素的操作。

0