/*
* test_tree.c
* This program tests the doubly-linked list
package.
*/
#include <stdio.h>
#include "list.h"
int main ()
{
List
*p_list;
Element
*p_elem;
/* Initialize a
list an insert several numbers to it. */
p_list = list_init();
list_append (p_list, 3);
list_append (p_list, 4);
list_append (p_list, 5);
list_prepend (p_list, 2);
list_prepend (p_list, 1);
list_append (p_list, 6);
list_append (p_list, 7);
list_delete (p_list, 6); /* Test the delete function. */
/* Try to find
several values. */
if
(list_find (p_list, 3))
printf ("%g is found in the list.\n", 3);
else
printf ("%g is not found in the list.\n", 3);
if
(list_find (p_list, 3.2))
printf ("%g is found in the list.\n", 3.2);
else
printf ("%g is not found in the list.\n", 3.2);
/* Print the
content of the list. */
p_elem = p_list->p_head;
while
(p_elem != NULL)
{
printf ("%g ", p_elem->value);
p_elem = p_elem->p_next;
}
printf ("\n");
printf ("%d elements in the list.\n",
p_list->size);
/* Test the pop
functions. */
printf ("Popped %g.\n", list_pop_first(p_list));
printf ("Ejected %g.\n", list_pop_last(p_list));
/* Print the
reversed list. */
for
(p_elem = p_list->p_tail;
p_elem != NULL;
p_elem = p_elem->p_prev)
{
printf ("%g ", p_elem->value);
}
printf ("\n");
printf ("%d elements in the list.\n",
p_list->size);
/* Free memory. */
list_reset (p_list);
free (p_list);
return
(0);
}