(svn r20679) -Codechange: Remove unused insertion sorter.

pull/155/head
alberth 14 years ago
parent 0439025e74
commit 17c4783571

@ -14,82 +14,6 @@
#include "queue.h"
/*
* Insertion Sorter
*/
static void InsSort_Clear(Queue *q, bool free_values)
{
InsSortNode *node = q->data.inssort.first;
InsSortNode *prev;
while (node != NULL) {
if (free_values) free(node->item);
prev = node;
node = node->next;
free(prev);
}
q->data.inssort.first = NULL;
}
static void InsSort_Free(Queue *q, bool free_values)
{
q->clear(q, free_values);
}
static bool InsSort_Push(Queue *q, void *item, int priority)
{
InsSortNode *newnode = MallocT<InsSortNode>(1);
newnode->item = item;
newnode->priority = priority;
if (q->data.inssort.first == NULL ||
q->data.inssort.first->priority >= priority) {
newnode->next = q->data.inssort.first;
q->data.inssort.first = newnode;
} else {
InsSortNode *node = q->data.inssort.first;
while (node != NULL) {
if (node->next == NULL || node->next->priority >= priority) {
newnode->next = node->next;
node->next = newnode;
break;
}
node = node->next;
}
}
return true;
}
static void *InsSort_Pop(Queue *q)
{
InsSortNode *node = q->data.inssort.first;
void *result;
if (node == NULL) return NULL;
result = node->item;
q->data.inssort.first = q->data.inssort.first->next;
assert(q->data.inssort.first == NULL || q->data.inssort.first->priority >= node->priority);
free(node);
return result;
}
static bool InsSort_Delete(Queue *q, void *item, int priority)
{
return false;
}
void init_InsSort(Queue *q)
{
q->push = InsSort_Push;
q->pop = InsSort_Pop;
q->del = InsSort_Delete;
q->clear = InsSort_Clear;
q->free = InsSort_Free;
q->data.inssort.first = NULL;
}
/*
* Binary Heap
* For information, see: http://www.policyalmanac.org/games/binaryHeaps.htm

@ -25,12 +25,6 @@ typedef bool Queue_DeleteProc(Queue *q, void *item, int priority);
typedef void Queue_ClearProc(Queue *q, bool free_values);
typedef void Queue_FreeProc(Queue *q, bool free_values);
struct InsSortNode {
void *item;
int priority;
InsSortNode *next;
};
struct BinaryHeapNode {
void *item;
int priority;
@ -67,9 +61,6 @@ struct Queue {
Queue_FreeProc *free;
union {
struct {
InsSortNode *first;
} inssort;
struct {
uint max_size;
uint size;
@ -80,15 +71,6 @@ struct Queue {
};
/**
* Insertion Sorter
*/
/* Initializes a inssort and allocates internal memory. There is no maximum
* size */
void init_InsSort(Queue *q);
/*
* Binary Heap
* For information, see:

Loading…
Cancel
Save