91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

C語言棧如何進行操作

小樊
94
2024-07-24 20:19:20
欄目: 編程語言

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,并實現了基本的壓棧、彈棧、獲取棧頂元素、判斷棧是否為空和獲取棧的大小等操作。我們可以通過調用這些函數來操作這個棧。

0
怀集县| 鄂尔多斯市| 湘潭县| 武乡县| 枝江市| 桐乡市| 蓬溪县| 余庆县| 曲周县| 盐源县| 鄂伦春自治旗| 宣城市| 合山市| 普兰店市| 新蔡县| 深州市| 旌德县| 新沂市| 象州县| 佛山市| 玉林市| 咸丰县| 桐梓县| 湖北省| 新巴尔虎右旗| 绿春县| 龙川县| 桂阳县| 诸城市| 友谊县| 额敏县| 六枝特区| 博白县| 武强县| 安龙县| 新民市| 黎平县| 娄烦县| 嘉黎县| 静海县| 栾川县|