view test/list/testiter.c @ 2:803d6bf22e6d default tip

second commit. it's far to complete..
author kent <kent@cr.ie.u-ryukyu.ac.jp>
date Tue, 22 Dec 2009 16:19:56 +0900
parents
children
line wrap: on
line source

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<assert.h>

#include"List.h"

void printList(List *list);
int test0();
int _listRingCheck(List *head);

int
main(int argc, char **argv)
{
	test0();
	return 0;
}

int
test0()
{
	char *data = "abcdefghijklmnopqrstuvwxyz";
	List *list=NULL;
	ListIter *iter=NULL;
	int i;
	char input;

	for (i=0; data[i]!='\0'; i++) {
		list = _listAddFirst(list, (void*)data[i]);
	}
	printList(list);
	assert(_listRingCheck(list));


	iter = _listIterator(list);
	while ((data=_listIterNext(iter))!=NULL) {
		int c=(int)data;
		printf("%c ", c);
	}
	_listIterEnd(iter);
	printf("\n");


	i=0;
	iter = _listIterator(list);
	while ((data=_listIterNext(iter))!=NULL) {
		if (i%2==1) {
			list = _listIterRemoveCurrent(iter);
		}
		i++;
	}
	_listIterEnd(iter);
	printf("\n");
	assert(_listRingCheck(list));

	iter = _listIterator(list);
	while ((data=_listIterNext(iter))!=NULL) {
		int c=(int)data;
		printf("%c ", c);
	}
	_listIterEnd(iter);
	printf("\n");

	return 0;
}


int printOne(void *data,void *arg)
{
	char c = (char)data;
	printf("%c ", c);
	return 1;
}
void
printList(List *list)
{
	_listApply(list, printOne, NULL);
	printf("\n");
}