亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

c語言入棧出棧代碼怎么寫

小億
309
2023-12-12 16:28:14
欄目: 編程語言

以下是一個簡單的 C 語言實現棧的代碼示例:

#include <stdio.h>
#include <stdbool.h>

#define MAX_SIZE 100

// 定義棧結構
typedef struct {
    int data[MAX_SIZE];
    int top;  // 棧頂指針
} Stack;

// 初始化棧
void initStack(Stack *s) {
    s->top = -1;
}

// 判斷棧是否為空
bool isEmpty(Stack *s) {
    return s->top == -1;
}

// 判斷棧是否已滿
bool isFull(Stack *s) {
    return s->top == MAX_SIZE - 1;
}

// 入棧
void push(Stack *s, int value) {
    if (isFull(s)) {
        printf("Stack overflow\n");
        return;
    }
    
    s->top++;
    s->data[s->top] = value;
}

// 出棧
int pop(Stack *s) {
    if (isEmpty(s)) {
        printf("Stack underflow\n");
        return -1;
    }
    
    int value = s->data[s->top];
    s->top--;
    return value;
}

// 獲取棧頂元素
int peek(Stack *s) {
    if (isEmpty(s)) {
        printf("Stack underflow\n");
        return -1;
    }
    
    return s->data[s->top];
}

// 打印棧中的元素
void printStack(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");
}

int main() {
    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 用于初始化棧,isEmptyisFull 用于判斷棧是否為空或已滿,push 用于入棧,pop 用于出棧,peek 用于獲取棧頂元素,以及 printStack 用于打印棧中的元素。

main 函數中,首先通過調用 initStack 初始化了一個棧 stack,然后通過調用 push 將元素壓入棧中,再通過調用 printStack 打印棧中的元素。

接著,通過調用 pop 函數將棧頂元素出棧,并打印出棧的元素值。

最后,通過調用 peek 函數獲取棧頂元素值,并打印棧頂元素。

0
古浪县| 正安县| 松桃| 含山县| 英德市| 兖州市| 视频| 姚安县| 双峰县| 新津县| 肥东县| 翁牛特旗| 子长县| 南京市| 治多县| 南漳县| 娄烦县| 嘉祥县| 华坪县| 彩票| 盐山县| 绍兴县| 泰安市| 宁晋县| 峡江县| 巫山县| 怀安县| 伊金霍洛旗| 屏东县| 丰县| 吉木萨尔县| 五指山市| 长寿区| 淮北市| 淄博市| 浠水县| 常州市| 雅江县| 桐城市| 安溪县| 文昌市|