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

溫馨提示×

C語言中利用隊列數據結構識別回文

小樊
82
2024-04-26 17:30:01
欄目: 編程語言

回文是指從前往后讀和從后往前讀是一樣的字符串,例如"level"和"radar"。下面是一個利用隊列數據結構來識別回文的C語言代碼示例:

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

#define MAX_SIZE 100

typedef struct {
    char data[MAX_SIZE];
    int front;
    int rear;
} Queue;

Queue* createQueue() {
    Queue* q = (Queue*)malloc(sizeof(Queue));
    q->front = -1;
    q->rear = -1;
    return q;
}

void enqueue(Queue* q, char value) {
    if (q->rear == MAX_SIZE - 1) {
        printf("Queue is full\n");
    } else {
        q->rear++;
        q->data[q->rear] = value;
    }
}

char dequeue(Queue* q) {
    if (q->front == q->rear) {
        printf("Queue is empty\n");
        return '\0';
    } else {
        q->front++;
        return q->data[q->front];
    }
}

int isPalindrome(char* str) {
    Queue* q = createQueue();
    
    int len = strlen(str);
    for (int i = 0; i < len; i++) {
        enqueue(q, str[i]);
    }
    
    for (int i = 0; i < len; i++) {
        char c = dequeue(q);
        if (c != str[i]) {
            return 0;
        }
    }
    
    return 1;
}

int main() {
    char str[MAX_SIZE];
    printf("Enter a string: ");
    scanf("%s", str);
    
    if (isPalindrome(str)) {
        printf("%s is a palindrome\n", str);
    } else {
        printf("%s is not a palindrome\n", str);
    }
    
    return 0;
}

在這個示例中,我們首先定義了一個隊列結構Queue,并實現了創建隊列、入隊和出隊等基本操作。然后我們定義了isPalindrome函數來判斷輸入的字符串是否為回文。在該函數中,我們首先將字符串中的字符逐個入隊,然后再逐個出隊并與原字符串進行比較,如果有任何一個字符不相同,則返回0,表示不是回文;如果所有字符都相同,則返回1,表示是回文。最后在main函數中,我們接收用戶輸入的字符串,并調用isPalindrome函數進行判斷并輸出結果。

0
永德县| 嘉善县| 马公市| 昌乐县| 韶关市| 依兰县| 嘉峪关市| 屯留县| 永新县| 涡阳县| 岐山县| 巍山| 岳阳市| 合川市| 鹤庆县| 海原县| 孟连| 耒阳市| 土默特左旗| 宜川县| 修文县| 五寨县| 和平县| 南汇区| 汨罗市| 尉犁县| 根河市| 徐州市| 罗平县| 永靖县| 灵寿县| 汕头市| 保山市| 加查县| 名山县| 浪卡子县| 论坛| 西贡区| 西安市| 江安县| 杭锦旗|