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

溫馨提示×

在C語言中使用棧來識別回文結構

小樊
84
2024-04-26 17:02:54
欄目: 編程語言

下面是一個使用棧來識別回文結構的C語言示例代碼:

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

#define MAX_SIZE 100

typedef struct {
    char data[MAX_SIZE];
    int top;
} Stack;

void init(Stack *stack) {
    stack->top = -1;
}

void push(Stack *stack, char value) {
    if (stack->top < MAX_SIZE - 1) {
        stack->data[++stack->top] = value;
    }
}

char pop(Stack *stack) {
    if (stack->top >= 0) {
        return stack->data[stack->top--];
    }
    return '\0';
}

bool isPalindrome(char *str) {
    Stack stack;
    init(&stack);

    int length = strlen(str) / 2;
    for (int i = 0; i < length; i++) {
        push(&stack, str[i]);
    }

    int start = length;
    if (strlen(str) % 2 == 1) {
        start++;
    }

    for (int i = start; i < strlen(str); i++) {
        if (str[i] != pop(&stack)) {
            return false;
        }
    }

    return true;
}

int main() {
    char str[MAX_SIZE];
    printf("Enter a string: ");
    scanf("%s", str);

    if (isPalindrome(str)) {
        printf("The string is a palindrome.\n");
    } else {
        printf("The string is not a palindrome.\n");
    }

    return 0;
}

在這個示例中,我們定義了一個棧結構體和相關的操作函數。然后我們定義了一個isPalindrome函數來判斷輸入的字符串是否是回文結構。最后在main函數中輸入一個字符串,并調用isPalindrome函數來判斷該字符串是否是回文結構。

0
曲周县| 梅州市| 天全县| 阿鲁科尔沁旗| 连云港市| 庄浪县| 崇信县| 驻马店市| 西丰县| 遵化市| 卢氏县| 江西省| 内丘县| 长葛市| 雅江县| 伊吾县| 威信县| 印江| 滁州市| 宾阳县| 永登县| 雅江县| 鲁甸县| 安塞县| 石泉县| 湘阴县| 台州市| 松原市| 静乐县| 奎屯市| 凤山县| 荆门市| 苏尼特左旗| 鹿泉市| 会东县| 淅川县| 大洼县| 巴南区| 五河县| 宕昌县| 凌海市|