54 lines
1.1 KiB
C
54 lines
1.1 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);
|
|
}
|
|
return p;
|
|
}
|
|
|
|
queue *copy_queue(queue *p) {
|
|
queue* p_out = create_queue();
|
|
for (int i = 0; i < getsize_queue(p); i++) {
|
|
int val = dequeue(p);
|
|
enqueue(val, p);
|
|
enqueue(val, 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);
|
|
}
|
|
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;
|
|
}
|