数据结构与算法分析 p64 队列的练习
程序员文章站
2024-01-28 17:10:46
...
数据结构与算法分析 p64 队列的练习
#include<stdio.h>
#include<stdlib.h>
typedef struct queuerecord{
int capacity;
int front;
int rear;
int *array;
int size;
}*queue;
void makeempty(queue q) {
q->front = 1;
q->rear = 0;
q->size = 0;
}
queue createqueue(int maxelements) {
queue q = (queue)malloc(sizeof(struct queuerecord));
q->array = (int*)malloc(sizeof(int)*maxelements);
q->capacity = maxelements;
makeempty(q);
return q;
}
int isfull(queue q) {
return q->size == q -> capacity;
}
int isempty(queue q) {
return q->size == 0;
}
void dispose(queue q) {
free(q->array);
free(q);
}
int circ(int value,queue q) {
value++;
if (value== q->capacity) {
value= 0;
}
return value;
}
void enqueue(int x, queue q) {
if (isfull(q)) {
printf("full queue");
}
else {
q->size++;
q->rear = circ(q->rear,q);
q->array[q->rear] = x;
}
}
void dequeue(queue q) {
if (isempty(q)) {
printf("empty queue");
}
else {
q->size--;
q->front = circ(q->front, q);
}
}
int main() {
queue q=createqueue(20);
int a;
for (int i = 0; i < 10; i++) {
scanf("%d", &a);
enqueue(a, q);
}
for (int i = 0; i < 5; i++) {
dequeue(q);
}
for (int i = q->front; i <= q->rear; i++) {
printf("%d",q->array[i]);
}
return 0;
}
推荐阅读
-
数据结构与算法分析 p64 队列的练习
-
Python实现的数据结构与算法之双端队列详解
-
Python cookbook(数据结构与算法)实现优先级队列的方法示例
-
C++(数据结构与算法):32---队列的实现(数组形式)
-
Java数据结构与算法:图、图的概念、深度优先搜索DFS、广度优先搜索BFS、思路分析、代码实现
-
Java数据结构与算法:数组模拟队列、环形队列、思路分析
-
数据结构与算法——优先队列类的C++实现(二叉堆)
-
数据结构与算法分析-C++描述 第6章 优先队列ADT(二叉堆)
-
[数据结构与算法] 优先级队列/堆队列 完全二叉堆 左式堆 python里的heapq
-
小鱼要学数据结构与算法(基于python)—Day19树的遍历、优先队列和二叉堆