如何在C語言中使用結(jié)構(gòu)體數(shù)組實(shí)現(xiàn)棧和隊(duì)列

在C語言中,可以使用結(jié)構(gòu)體數(shù)組來實(shí)現(xiàn)棧和隊(duì)列。以下是一個(gè)簡單的示例:


#include <stdio.h>
#include <stdbool.h>
// 定義棧的結(jié)構(gòu)體
typedef struct {
    int data[100]; // 存儲(chǔ)數(shù)據(jù)的數(shù)組
    int top;       // 棧頂指針
} Stack;
// 初始化棧
void initStack(Stack *s) {
    s->top = -1;
}
// 入棧操作
void push(Stack *s, int value) {
    if (s->top >= 99) {
        printf("棧已滿,無法入棧
");
        return;
    }
    s->data[++s->top] = value;
}
// 出棧操作
int pop(Stack *s) {
    if (s->top < 0) {
        printf("棧為空,無法出棧
");
        return -1;
    }
    return s->data[s->top--];
}
// 判斷棧是否為空
bool isEmpty(Stack *s) {
    return s->top == -1;
}
// 定義隊(duì)列的結(jié)構(gòu)體
typedef struct {
    int data[100]; // 存儲(chǔ)數(shù)據(jù)的數(shù)組
    int front;     // 隊(duì)首指針
    int rear;      // 隊(duì)尾指針
} Queue;
// 初始化隊(duì)列
void initQueue(Queue *q) {
    q->front = q->rear = -1;
}
// 入隊(duì)操作
void enqueue(Queue *q, int value) {
    if ((q->rear + 1) % 100 == q->front) {
        printf("隊(duì)列已滿,無法入隊(duì)
");
        return;
    }
    q->rear = (q->rear + 1) % 100;
    q->data[q->rear] = value;
    if (q->front == -1) {
        q->front = q->rear;
    }
}
// 出隊(duì)操作
int dequeue(Queue *q) {
    if (q->front == -1) {
        printf("隊(duì)列為空,無法出隊(duì)
");
        return -1;
    }
    int value = q->data[q->front];
    if (q->front == q->rear) {
        q->front = q->rear = -1;
    } else {
        q->front = (q->front + 1) % 100;
    }
    return value;
}
// 判斷隊(duì)列是否為空
bool isQueueEmpty(Queue *q) {
    return q->front == -1;
}

這個(gè)示例中,我們定義了兩個(gè)結(jié)構(gòu)體:Stack用于實(shí)現(xiàn)棧,Queue用于實(shí)現(xiàn)隊(duì)列。每個(gè)結(jié)構(gòu)體都有一個(gè)數(shù)組data來存儲(chǔ)數(shù)據(jù),以及一個(gè)或兩個(gè)指針(topfrontrear)來表示棧頂或隊(duì)列的頭部和尾部位置。我們還提供了一些基本的棧和隊(duì)列操作函數(shù),如pushpopenqueuedequeue等。

主站蜘蛛池模板: 精品人妻AV一区二区三区| 国产伦精品一区三区视频| 国产精品成人一区二区| 亚洲av乱码一区二区三区按摩| 久久99精品免费一区二区| 性色av闺蜜一区二区三区| 人妻久久久一区二区三区| 成人精品视频一区二区三区| 日本高清天码一区在线播放| 麻豆精品人妻一区二区三区蜜桃| 老熟女五十路乱子交尾中出一区| 精品一区二区三区免费视频| 一级特黄性色生活片一区二区| 无码午夜人妻一区二区不卡视频| 成人区精品一区二区不卡亚洲| 91大神在线精品视频一区| 人体内射精一区二区三区| 水蜜桃av无码一区二区| 国产激情з∠视频一区二区| 精品亚洲一区二区| 久久国产精品最新一区| 麻豆AV一区二区三区久久| 精品欧洲av无码一区二区14| 亚洲一区欧洲一区| 国产精品无码一区二区在线观 | 中文字幕日韩精品一区二区三区| 色狠狠AV一区二区三区| 亚洲一区二区三区不卡在线播放| 精品人妻中文av一区二区三区| 亚洲一区中文字幕在线电影网| 国产经典一区二区三区蜜芽| 精品无码综合一区二区三区| 日本精品一区二区在线播放 | 色欲精品国产一区二区三区AV| 久久福利一区二区| 2021国产精品视频一区| 国产日韩视频一区| 日本精品一区二区三区在线观看| 精品一区二区三区东京热| 国内精自品线一区91| 亚洲人AV永久一区二区三区久久|