Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "queue.h"
- int isEmpty(Tqueue *queue){
- return queue->size == 0;
- }
- int size(Tqueue *queue){
- return queue->size;
- }
- void enqueue(Tqueue *queue, NTree *data){
- if (!queue->front){//If the queue is empty
- Tnode *newNode = malloc(sizeof(Tnode));//Make a new Node
- newNode->data = data;//Populate it with the correct data
- queue->front = newNode;//Make it front of the queue
- queue->back = newNode;//Make it back of the queue
- queue->size ++;//queue gets larger
- return;
- }
- Tnode *newNode = malloc(sizeof(Tnode));//Make a new Node
- newNode->data = data;//Populate it with the correct data
- queue->back->next = newNode;//Add it to the queue
- queue->size ++;//queue gets larger
- }
- NTree* dequeue(Tqueue *queue){
- if (!queue->front){
- return NULL;
- }
- if (!queue->front->next){
- NTree *toReturn1 = queue->front->data;
- free(queue->front);
- queue->front = NULL;
- queue->back = NULL;
- queue->size = 0;
- return toReturn1;
- }
- NTree *toReturn = queue->front->data;
- Tnode *temp = queue->front;
- queue->front = queue->front->next;
- free(temp);
- queue->size --;
- return toReturn;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement