Files
prog-c/tp3/TP3/queuetest.c
2024-10-13 15:27:04 +02:00

60 lines
1.4 KiB
C

#include "queuetest.h"
#include "alloc.h"
#include "queue.h"
#include "testprint.h"
#include <stdbool.h>
#include <stdlib.h>
queue *random_queue(int size, int maxval) {
queue* p = create_queue();
for (int i = 0; i < size; i++) {
enqueue(rand() % maxval, p);
// print_queue(p);
}
return p;
}
queue *copy_queue(queue *p) {
queue* p_out = create_queue();
for (int i = 0; i < getsize_queue(p); i++) {
// printf("left: %d right: %d size: %d\n", p -> left, p -> right, p -> size_array);
int val = dequeue(p);
// printf("val: %d\n", val);
enqueue(val, p);
enqueue(val, p_out);
// print_queue(p);
// print_queue(p_out);
}
return p_out;
}
queue *mountain_queue(int n) {
queue* p = create_queue();
for (int i = 0; i < n; i++) {
enqueue(n - i, p);
// print_queue(p);
}
return p;
}
void select_sort_queue(queue *p) {
int n = getsize_queue(p);
for (int i = 0; i < n; i++) {
int max = dequeue(p);
for (int j = 1; j < n - i; j++) {
int val = dequeue(p);
if (val > max) {
enqueue(max, p);
max = val;
} else {
enqueue(val, p);
}
}
for (int j = 0; j < i; j++) {
enqueue(dequeue(p), p);
}
enqueue(max, p);
}
return;
}