summaryrefslogtreecommitdiff
path: root/doll_test.c
blob: 73dd3b9366084a519e6511b29da50d283d9cc1a4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include <stdio.h>
#include "doll.h"

void iter(doll_t *list)
{
	int i;
	char *elm;

	printf("\nIterando (for)...\n");
	for (i = 0; i < list->length; i++)
		printf("%s\n", doll_at(list, i));

	printf("\nIterando (doll_foreach)...\n");
	doll_foreach(elm, list)
		printf("%s\n", elm);

	printf("\nIterando al revés (for)...\n");
	for (i = -1; -i <= list->length; i--)
		printf("%s\n", doll_at(list, i));

	printf("\nIterando al revés (doll_foreach)...\n");
	doll_foreach_r(elm, list)
		printf("%s\n", elm);
}

void iter_doll(doll_t *list)
{
}

int main(void)
{
	char *data1 = "Uno";
	char *data2 = "Dos";
	char *data3 = "Tres";
	char *data4 = "Cuatro";
	doll_t *mylist = doll_new();
	doll_t *mylist2 = doll_new();
	int i;

	doll_append(mylist, data1);
	doll_append(mylist, data2);
	doll_append(mylist, data3);
	doll_append(mylist, data4);
	printf("Tamaño: %d\n", mylist->length);

	printf("\nPrimer elemento: %s\n", (char *)doll_first(mylist));

	iter(mylist);

	printf("\nEliminando %s...\n", data2);
	doll_remove(mylist, data2);
	printf("\nTamaño: %d\n", mylist->length);

	printf("\nÚltimo elemento: %s\n", (char *)doll_last(mylist));

	iter(mylist);

	printf("\nPush \"p1\"\n");
	doll_push(mylist, "p1");
	printf("Push \"p2\"\n");
	doll_push(mylist, "p2");
	while (mylist->head) {
		printf("Pop: %s\n", (char *)doll_pop(mylist));
		printf("Tamaño: %d\n", mylist->length);
	}

	for (i = 0; i < 3; i++)
		doll_push(mylist2, "waka");

	iter(mylist2);

	while (mylist2->head) {
		printf("Pop: %s\n", (char *)doll_pop(mylist2));
		printf("Tamaño: %d\n", mylist2->length);
	}

	doll_destroy(mylist);
	doll_destroy(mylist2);

	return 0;
}