view test/list/testlist.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 5b089096921f
children
line wrap: on
line source

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

#include"List.h"

void printList(List *list);

int
main(int argc, char **argv)
{
	char buff[BUFSIZ];
	List *list=NULL;

	while (fgets(buff, BUFSIZ, stdin)!=NULL) {
		int size = strlen(buff);
		char *newstr;

		if (buff[size-1]=='\n') {
			buff[size-1]='\0';
			size--;
		}
		if (strncmp(buff, "d:", 2)==0) {
			int count;
			char *s;
			count = atoi(buff+2);
			s = _listGetnthData(list, count);
			if (s) {
				printf("%s\n", s);
				list = _listRemove(list, s);
			}
		} else if (strncmp(buff, "s:", 2)==0) {
			int count;
			count = atoi(buff+2);
			for (;count>0; count--) {
				list = _listMoveLasttoFirst(list);
			}
		} else {
			newstr = strdup(buff);
			list = _listAddFirst(list, newstr);
		}

		printList(list);
	}

}


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