remove queue data structure and begin to implement basic chroot script for testing
This commit is contained in:
140
src/libglacier.c
140
src/libglacier.c
@@ -88,6 +88,8 @@ struct node {
|
||||
char *data;
|
||||
struct node *children[MAX_CHILDREN];
|
||||
int numChildren;
|
||||
struct node *left;
|
||||
struct node *right;
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -384,144 +386,6 @@ print_tree(struct node *root, int level)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* queue
|
||||
*
|
||||
* DESCRIPTION: Definition of queue type.
|
||||
* DEFINED IN: data.h
|
||||
*
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
int items[MAX_SIZE];
|
||||
int front;
|
||||
int rear;
|
||||
} queue;
|
||||
|
||||
/*
|
||||
* init_queue
|
||||
*
|
||||
* DESCRIPTION: Initialize a queue.
|
||||
* PARAMETERS: queue *q
|
||||
* DEFINED IN: data.h
|
||||
*
|
||||
*/
|
||||
|
||||
void
|
||||
init_queue(queue *q)
|
||||
{
|
||||
q -> front = -1;
|
||||
q -> rear = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* queue_is_empty
|
||||
*
|
||||
* DESCRIPTION: Check if queue is empty.
|
||||
* PARAMETERS: struct node *root, int level
|
||||
* DEFINED IN: data.h
|
||||
*
|
||||
*/
|
||||
|
||||
bool queue_is_empty(queue *q) { return (q -> front == q -> rear -1); }
|
||||
|
||||
/*
|
||||
* queue_is_full
|
||||
*
|
||||
* DESCRIPTION: Check if queue is full.
|
||||
* PARAMETERS: queue *q
|
||||
* DEFINED IN: data.h
|
||||
*
|
||||
*/
|
||||
|
||||
bool queue_is_full(queue *q) { return (q -> rear == MAX_SIZE); }
|
||||
|
||||
/*
|
||||
* enqueue
|
||||
*
|
||||
* DESCRIPTION: Enqueue an element at the back of the queue.
|
||||
* PARAMETERS: queue *q, int value
|
||||
* DEFINED IN: data.h
|
||||
*
|
||||
*/
|
||||
|
||||
void
|
||||
enqueue (queue *q, int value)
|
||||
{
|
||||
if (queue_is_full(q)) {
|
||||
printf("Queue is full\n");
|
||||
return;
|
||||
}
|
||||
|
||||
q -> items[q -> rear] = value;
|
||||
q -> rear++;
|
||||
}
|
||||
|
||||
/*
|
||||
* dequeue
|
||||
*
|
||||
* DESCRIPTION: Dequeue the element at the front of the queue.
|
||||
* PARAMETERS: queue *q, int value
|
||||
* DEFINED IN: data.h
|
||||
*
|
||||
*/
|
||||
|
||||
void
|
||||
dequeue(queue *q)
|
||||
{
|
||||
if (queue_is_empty(q)) {
|
||||
printf("Queue is empty\n");
|
||||
return;
|
||||
}
|
||||
|
||||
q -> front++;
|
||||
}
|
||||
|
||||
/*
|
||||
* peek
|
||||
*
|
||||
* DESCRIPTION: View the element at the front of the queue.
|
||||
* PARAMETERS: struct node *root, int level
|
||||
* DEFINED IN: data.h
|
||||
*
|
||||
*/
|
||||
|
||||
int
|
||||
peek(queue *q)
|
||||
{
|
||||
if (queue_is_empty(q)) {
|
||||
printf("Queue is empty\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
return q -> items[q -> front + 1];
|
||||
}
|
||||
|
||||
/*
|
||||
* print_queue
|
||||
*
|
||||
* DESCRIPTION: Print the queue.
|
||||
* PARAMETERS: queue *q
|
||||
* DEFINED IN: data.h
|
||||
*
|
||||
*/
|
||||
|
||||
void
|
||||
print_queue(queue *q)
|
||||
{
|
||||
if (queue_is_empty(q)) {
|
||||
printf("Queue is empty\n");
|
||||
return;
|
||||
}
|
||||
|
||||
printf("Current Queue: ");
|
||||
|
||||
for (int i = q -> front + 1; i < q -> rear; i++) {
|
||||
printf("%d ", q -> items[i]);
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
/*
|
||||
* mkworkspace
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user