怎么用c语言实现栈和队列

栈和队列是计算机科学中两种基本的数据结构,它们在算法设计和程序开发中具有广泛的应用,C语言作为一种通用的编程语言,提供了实现栈和队列的基本操作的功能,下面将详细介绍如何使用C语言实现栈和队列。

做网站、网站建设的开发,更需要了解用户,从用户角度来建设网站,获得较好的用户体验。创新互联建站多年互联网经验,见的多,沟通容易、能帮助客户提出的运营建议。作为成都一家网络公司,打造的就是网站建设产品直销的概念。选择创新互联建站,不只是建站,我们把建站作为产品,不断的更新、完善,让每位来访用户感受到浩方产品的价值服务。

1、栈(Stack)

栈是一种后进先出(LIFO)的数据结构,只允许在栈顶进行插入和删除操作,栈的基本操作包括入栈(push)、出栈(pop)和查看栈顶元素(top)。

下面是使用C语言实现栈的代码:

#include 
#include 
#define MAX_SIZE 100
typedef struct {
    int data[MAX_SIZE];
    int top;
} Stack;
// 初始化栈
void init(Stack *stack) {
    stack>top = 1;
}
// 判断栈是否为空
int isEmpty(Stack *stack) {
    return stack>top == 1;
}
// 入栈
void push(Stack *stack, int value) {
    if (stack>top == MAX_SIZE 1) {
        printf("Stack is full!
");
        return;
    }
    stack>data[++stack>top] = value;
}
// 出栈
int pop(Stack *stack) {
    if (isEmpty(stack)) {
        printf("Stack is empty!
");
        return 1;
    }
    return stack>data[stack>top];
}
// 查看栈顶元素
int peek(Stack *stack) {
    if (isEmpty(stack)) {
        printf("Stack is empty!
");
        return 1;
    }
    return stack>data[stack>top];
}

上述代码定义了一个Stack结构体,包含了一个整型数组data和一个表示栈顶位置的整数topinit函数用于初始化栈,将栈顶位置设置为1。isEmpty函数用于判断栈是否为空,当栈顶位置为1时表示栈为空。push函数用于将元素压入栈顶,如果栈已满则输出错误信息。pop函数用于弹出栈顶元素,如果栈为空则输出错误信息并返回1。peek函数用于查看栈顶元素,如果栈为空则输出错误信息并返回1。

2、队列(Queue)

队列是一种先进先出(FIFO)的数据结构,允许在队头和队尾进行插入和删除操作,队列的基本操作包括入队(enqueue)、出队(dequeue)和查看队头元素(front)。

下面是使用C语言实现队列的代码:

#include 
#include 
#define MAX_SIZE 100
typedef struct {
    int data[MAX_SIZE];
    int front;
    int rear;
} Queue;
// 初始化队列
void init(Queue *queue) {
    queue>front = 0;
    queue>rear = 0;
}
// 判断队列是否为空
int isEmpty(Queue *queue) {
    return queue>front == queue>rear;
}
// 入队
void enqueue(Queue *queue, int value) {
    if (queue>rear == MAX_SIZE 1) {
        printf("Queue is full!
");
        return;
    }
    queue>data[++queue>rear] = value;
}
// 出队
int dequeue(Queue *queue) {
    if (isEmpty(queue)) {
        printf("Queue is empty!
");
        return 1;
    }
    return queue>data[queue>front++];
}
// 查看队头元素
int peek(Queue *queue) {
    if (isEmpty(queue)) {
        printf("Queue is empty!
");
        return 1;
    }
    return queue>data[queue>front];
}

文章题目:怎么用c语言实现栈和队列
网站URL:http://www.mswzjz.cn/qtweb/news26/229126.html

攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能