#include <stdio.h>
#include "node.h"
#include "queue.h"
int main()
{
t_queue_tab myqueue;
myqueue = createEmptyQueue();
int cpt;
for (cpt=1; cpt <=5; cpt++)
{
enqueue(&myqueue,createNode(cpt));
}
displayQueue(myqueue);
for (cpt=1; cpt <=3; cpt++)
{
dequeue(&myqueue);
}
displayQueue(myqueue);
for (cpt=6; cpt <=10; cpt++)
{
enqueue(&myqueue,createNode(cpt));
}
displayQueue(myqueue);
for (cpt=1; cpt <=3; cpt++)
{
dequeue(&myqueue);
}
displayQueue(myqueue);
for (cpt=11; cpt <=15; cpt++)
{
enqueue(&myqueue,createNode(cpt));
}
displayQueue(myqueue);
for (cpt=1; cpt <=3; cpt++)
{
dequeue(&myqueue);
}
displayQueue(myqueue);
return 0;
}#include <stdio.h>
#include "queue.h"
t_queue_tab createEmptyQueue()
{
t_queue_tab q;
q.first = q.last = 0;
return q;
}
int isQueueEmpty(t_queue_tab q)
{
return (q.first == q.last);
}
int isQueueFull(t_queue_tab q)
{
return (q.last-q.first == MAX);
}
void enqueue(t_queue_tab *pq, p_node pn)
{
int pos;
pos = pq->last % MAX;
pq->values[pos] = pn;
pq->last = pq->last+1;
}
p_node dequeue(t_queue_tab *pq)
{
p_node res;
int pos = pq->first%MAX;
res = pq->values[pos];
pq->first = pq->first+1;
return res;
}
void displayQueue(t_queue_tab q)
{
printf(" out <- ");
for (int cpt = q.first ; cpt < q.last; cpt++)
{
printf("%d <- ", q.values[cpt%MAX]->value);
}
printf("in\n");
return;
}#ifndef __QUEUE_H_INCLUDED__
#define __QUEUE_H_INCLUDED__
#define MAX 10
#include "node.h"
typedef struct s_queue_tab
{
p_node values[MAX];
int first, last;
} t_queue_tab;
t_queue_tab createEmptyQueue();
int isQueueEmpty(t_queue_tab);
int isQueueFull(t_queue_tab);
void enqueue(t_queue_tab *, p_node);
p_node dequeue(t_queue_tab *);
void displayQueue(t_queue_tab);
#endif#include <stdio.h>
#include "bintree.h"
#include "queue.h"
#include "node.h"
void BFVisit(t_tree t)
{
t_queue_tab q = createEmptyQueue();
p_node cur;
enqueue(&q,t.root);
printf("[ ");
while(!isQueueEmpty(q))
{
cur = dequeue(&q);
printf("%d :",cur->value);
if(cur->left != NULL)
{
enqueue(&q,cur->left);
}
if(cur->right != NULL)
{
enqueue(&q,cur->right);
}
}
printf("]");
return;
}#ifndef __QUEUE_H_INCLUDED__
#define __QUEUE_H_INCLUDED__
#define MAX 10
#include "node.h"
typedef struct s_queue_tab
{
p_node values[MAX];
int first, last;
} t_queue_tab;
t_queue_tab createEmptyQueue();
int isQueueEmpty(t_queue_tab);
int isQueueFull(t_queue_tab);
void enqueue(t_queue_tab *, p_node);
p_node dequeue(t_queue_tab *);
void displayQueue(t_queue_tab);
#endif#include <stdio.h>
#include "queue.h"
t_queue_tab createEmptyQueue()
{
t_queue_tab q;
q.first = q.last = 0;
return q;
}
int isQueueEmpty(t_queue_tab q)
{
return (q.first == q.last);
}
int isQueueFull(t_queue_tab q)
{
return (q.last-q.first == MAX);
}
void enqueue(t_queue_tab *pq, p_node pn)
{
int pos;
pos = pq->last % MAX;
pq->values[pos] = pn;
pq->last = pq->last+1;
}
p_node dequeue(t_queue_tab *pq)
{
p_node res;
int pos = pq->first%MAX;
res = pq->values[pos];
pq->first = pq->first+1;
return res;
}
void displayQueue(t_queue_tab q)
{
printf(" out <- ");
for (int cpt = q.first ; cpt < q.last; cpt++)
{
printf("%d <- ", q.values[cpt%MAX]->value);
}
printf("in\n");
return;
}