Data Structures and Algorithms Analysis Exercise p64 queue

Data Structures and Algorithms Analysis Exercise p64 queue

#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;

}

Here Insert Picture Description

Released four original articles · won praise 0 · Views 53

Guess you like

Origin blog.csdn.net/qq_41687358/article/details/104069609