Beispiel #1
0
static void test_empty(void)
{
	struct list_node *spos, *ssafe;
	struct node *pos, *safe;

	check(!slist_is_empty(&slist),
	      "slist is empty but slist_is_empty returned false");
	check(!list_is_empty(&list),
	      "list is empty but list_is_empty returned false");

	check(slist_head(&slist) != &slist,
	      "slist is empty but slist_head returned non-self");
	check(list_head(&list) != NULL,
	      "list is empty but list_head returned non-NULL");

	check(slist_tail(&slist) != &slist,
	      "slist is empty but slist_tail returned non-self");
	check(list_tail(&list) != NULL,
	      "list is empty but list_tail returned non-NULL");

	check_loop_never(slist_for_each(spos, &slist),
			 "slist is empty, but slist_for_each looped");
	check_loop_never(list_for_each(pos, &list),
			 "list is empty, but list_for_each looped");

	check_loop_never(slist_for_each_safe(spos, ssafe, &slist),
			 "slist is empty, but slist_for_each_safe looped");
	check_loop_never(list_for_each_safe(pos, safe, &list),
			 "list is empty, but list_for_each_safe looped");

	check_loop_never(slist_for_each_entry(pos, &slist, node),
			 "slist is empty, but slist_for_each_entry looped");
	check_loop_never(slist_for_each_entry_safe(pos, safe, &slist, node),
			 "slist is empty, but slist_for_each-entry_safe looped");
}
int main()
{
	struct node_info *phead = NULL;
	
	struct node_info s[] = {
		{1}, {2}, {3}, {4}, {5}, {6}, {7}, {8},
	};

	int i;
	for (i = 0; i < N_ELEMT(s); ++i) {
		slist_add( &phead, s + i);
	}


	slist_for_each(phead);


	return 0;
}
int main()
{
	struct node_info *phead = slist_init();
	
	int i;
	for (i = 0; i < 10; ++i) {
		slist_add_tail(phead, i);
	}
	
	if (slist_del(phead, 5) < 0) {
		fprintf(stderr, "slist_del failed\n");
		exit(1);
	}
	
	//slist_for_each_invert(phead);
	slist_invert(phead);
	slist_for_each(phead);
	printf("\n");
//	slist_destroy(phead);
	return 0;
}