Skip to content

Commit fe7c742

Browse files
committed
queue array implementation
1 parent c01c032 commit fe7c742

File tree

2 files changed

+103
-2
lines changed

2 files changed

+103
-2
lines changed

queue/queue_array/implementation_example/queue_array_implementation.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
/* By: jko <jko@student.42seoul.kr> +#+ +:+ +#+ */
77
/* +#+#+#+#+#+ +#+ */
88
/* Created: 2020/03/24 16:09:35 by jko #+# #+# */
9-
/* Updated: 2020/03/24 16:35:10 by jko ### ########.fr */
9+
/* Updated: 2020/03/24 16:48:13 by jko ### ########.fr */
1010
/* */
1111
/* ************************************************************************** */
1212

@@ -39,7 +39,7 @@ int queue_size(t_queue *queue)
3939

4040
int queue_push(t_queue *queue, void *data)
4141
{
42-
if (!queue || queue_size(queue) >= queue->max_size)
42+
if (!queue || (unsigned int)queue_size(queue) >= queue->max_size)
4343
return (0);
4444
queue->last_index++;
4545
queue->data[queue->last_index] = data;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
/* ************************************************************************** */
2+
/* */
3+
/* ::: :::::::: */
4+
/* test_main.c :+: :+: :+: */
5+
/* +:+ +:+ +:+ */
6+
/* By: jko <jko@student.42seoul.kr> +#+ +:+ +#+ */
7+
/* +#+#+#+#+#+ +#+ */
8+
/* Created: 2020/03/24 16:36:35 by jko #+# #+# */
9+
/* Updated: 2020/03/24 16:48:41 by jko ### ########.fr */
10+
/* */
11+
/* ************************************************************************** */
12+
13+
14+
#include "queue.h"
15+
#include <stdio.h>
16+
#include <string.h>
17+
#include <unistd.h>
18+
19+
void print_queue(t_queue *queue)
20+
{
21+
if (!queue)
22+
{
23+
printf("queue == null_ptr\n");
24+
return ;
25+
}
26+
printf("print queue start\n");
27+
for (int i = 0; i <= queue->last_index; ++i) {
28+
printf("q [%d] -> %s\n", i, queue->data[i]);
29+
}
30+
printf("end\n\n");
31+
}
32+
33+
int main(void)
34+
{
35+
char *temp;
36+
t_queue *queue = queue_init(5);
37+
printf("size = %d\n", queue_size(queue));
38+
printf("front->data = %s\n", queue_front(queue));
39+
print_queue(queue);
40+
41+
queue_push(queue, strdup("aa"));
42+
printf("size = %d\n", queue_size(queue));
43+
printf("front->data = %s\n", queue_front(queue));
44+
print_queue(queue);
45+
46+
queue_push(queue, strdup("b"));
47+
printf("size = %d\n", queue_size(queue));
48+
printf("front->data = %s\n", queue_front(queue));
49+
print_queue(queue);
50+
51+
queue_push(queue, strdup("ccc"));
52+
printf("size = %d\n", queue_size(queue));
53+
printf("front->data = %s\n", queue_front(queue));
54+
print_queue(queue);
55+
56+
queue_push(queue, strdup("ddddd"));
57+
printf("size = %d\n", queue_size(queue));
58+
printf("front->data = %s\n", queue_front(queue));
59+
print_queue(queue);
60+
61+
queue_push(queue, strdup("ee"));
62+
printf("size = %d\n", queue_size(queue));
63+
printf("front->data = %s\n", queue_front(queue));
64+
print_queue(queue);
65+
66+
temp = strdup("f");
67+
queue_push(queue, temp);
68+
printf("size = %d\n", queue_size(queue));
69+
printf("front->data = %s\n", queue_front(queue));
70+
print_queue(queue);
71+
free(temp);
72+
73+
printf("=============== pop ===============\n");
74+
for (int i = 0; i < 9; i++)
75+
{
76+
temp = queue_pop(queue);
77+
printf("pop = %s\n", temp);
78+
free(temp);
79+
printf("size = %d\n", queue_size(queue));
80+
printf("front->data = %s\n", queue_front(queue));
81+
print_queue(queue);
82+
}
83+
84+
queue_clear(queue, free);
85+
print_queue(queue);
86+
87+
queue_push(queue, strdup("e22"));
88+
printf("size = %d\n", queue_size(queue));
89+
printf("front->data = %s\n", queue_front(queue));
90+
print_queue(queue);
91+
92+
queue_push(queue, strdup("f22"));
93+
printf("size = %d\n", queue_size(queue));
94+
printf("front->data = %s\n", queue_front(queue));
95+
print_queue(queue);
96+
97+
free_queue(queue, free);
98+
99+
system("leaks a.out > leaks_result && cat leaks_result | grep leaked");
100+
return (0);
101+
}

0 commit comments

Comments
 (0)