示例#1
0
文件: list.c 项目: john-kolt/efim
void listPrint(pList list)
{
    fprintf("%d ", list->uid);
    if(list->left!=0)
        listPrint(list->left);
    if(list->right!=0)
        listPrint(list->right);
    puts("");
}
int main(void) {
  unsigned ind;
  listInit();
  for (ind = 0; ind < MAX; ind++)
    listInsert(rand() % (MAX*2), ind);
  printf("Списъкът съдържа следните елементи: \n"); listPrint();
  printf("\nТестване:\n");
  performSearchTest();
  printf("Списъкът след търсенето: \n"); listPrint();
  return 0;
}
示例#3
0
int main(int argc, char *argv[]) {

	//variables declaration
	FILE *file  = fopen(argv[1],"r");					//open file given by user
	char ch;
	char x[50];
	int i = 0;
	//create new list
	list *list;
	listCreate(&list);

	if(file!=NULL) {							//word only if file exists

		while(fscanf(file, "%s", x)!=EOF) {				//read string from file
			listAdd(x, list);						//call listAdd to add word
		}
		fclose(file);							//close file after operation
		list_sort(list);							//sort the list according to word count
		listPrint(list);							//print the list
		listDelete(list);							//free the list
		free(list);
	}
	
	return 0;								//bye!
}
示例#4
0
文件: oldlist.c 项目: theme/dsaa
node* bubbleSort( node *head){
    if ( NULL == head || NULL == head->next)
        return head;

    node *m, *n;
    int flag, len = listLen(head);
    int j,i = len -1;
    while( i > 0  ){
        printf("bs- ");
        listPrint( head );
        m = head;
        n = head->next;
        flag = 0;
        for( j= 0 ; j < i; ++j  ) {
            if ( n->data < m->data)
            {
                int tmp = n->data;
                n->data = m->data;
                m->data = tmp;
                flag = 1;
            }
            m = m->next;
            n = n->next;
        }
        if( 0 == flag )
            break;
        --i;
    }
    return head;
}
示例#5
0
文件: absub.c 项目: dokterp/aldor
int
absPrint(FILE *fout, AbSub sigma)
{
	if (sigma == absFail())
		return fprintf(fout, "[ FAIL ]");
	else
		return listPrint(AbBind)(fout, sigma->l, absPrintBinding);
}
示例#6
0
/*
* Parses the input into commands and arguments using whitespace
* Then calls the associated function or error
* Maximum number of arguments is 5
*/
void parse(char *in)
{
	int argNum = 1;
	char *arg, *argArr[6] = {NULL, NULL, NULL, NULL, NULL, NULL};
	arg = (char *) malloc(sizeof(char) * (strlen(in) + 1));

	/* Parse command */
	arg = strtok(in, " \r\n\t");
	argArr[0] = arg;
	if (argArr[0] == NULL) {
		fprintf(stderr, "ERROR: unknown command\n");
		return;
	}

	/* Parse arguments */
	arg = strtok(NULL, " \r\n\t");
	while (arg != NULL && argNum < 6) {
		if (strcmp(arg, " ") && strcmp(arg, "\r")
			&& strcmp(arg, "\n")) {
			argArr[argNum] = arg;
			argNum++;
		}
		arg = strtok(NULL, " \r\n\t");
	}

	/* Execute according to command */
	if (strcmp(argArr[0], "exit") == 0) {
		printf("EXITING SHELL...\n");
		exit(EXIT_SUCCESS);
	} else if (strcmp(argArr[0], "cd") == 0) {
		cmd_cd(argArr[1]);
	} else if (strcmp(argArr[0], "pushd") == 0) {
		char *oldwd = (char *) malloc(sizeof(char) * strlen(cwd));
		strcpy(oldwd, cwd);
		if (cmd_cd(argArr[1]) == 0)
			dirStack = stackPush(dirStack, oldwd);
	} else if (strcmp(argArr[0], "popd") == 0) {
		if (dirStack != NULL) {
			cmd_cd(dirStack->str);
			dirStack = stackPop(dirStack);
		} else {
			fprintf(stderr, "ERROR: stack is empty\n");
		}
	} else if (strcmp(argArr[0], "dirs") == 0) {
		stackPrint(dirStack);
	} else if (strcmp(argArr[0], "path") == 0) {
		if (argArr[1] == NULL && argArr[1] == NULL)
			listPrint(pathStack);
		else if (strcmp(argArr[1], "+") == 0)
			pathFind(1, argArr[2]);
		else if (strcmp(argArr[1], "-") == 0)
			pathFind(-1, argArr[2]);
		else
			fprintf(stderr, "ERROR: bad flag: %s\n", argArr[1]);
	} else {
		cmd_exec(argArr, argNum);
	}
};
示例#7
0
文件: tconst.c 项目: hemmecke/aldor
void
tcFini(void)
{
	if (DEBUG(tc)) {
		listPrint(TConst)(dbOut, tcList, tcPrint);
	}
	if (tcCount != 0)
		bug("%d constraints not checked", tcCount);
}
示例#8
0
文件: oldlist.c 项目: theme/dsaa
int main()
{
    //new a new list
    node *p,*head;
    int d,deld,insertd;

    p = head = NULL;
    while( scanf("%d",&d) )
    {
        if( 0 == d ) break;
        node *n = (node*) malloc(sizeof(node));
        n->data = d;
        n->next = NULL;
        if (NULL == head)
            p = head = n;
        p->next = n;
        p = n;
    }

    listLen( head );
    listPrint( head );

    printf("del?");
    scanf("%d",&deld);
    head = delByData(head, deld);
    listPrint( head );

    printf("insert?");
    scanf("%d",&insertd);
    head = insert(head, insertd);
    listPrint( head );

    printf("reverse\n");
    head = reverse (head );
    listPrint( head );

    printf("sort\n");
    //head = selSort( head );
    head = bubbleSort( head );
    listPrint( head );

    listFree( head );
    return 0;
}
示例#9
0
文件: search.c 项目: kdharsee/Search
void hashTablePrint() {
  hashNode *s;
  printf( "CURRENT HASHTABLE\n" );
  for(s = inverted_index; s != NULL; s = s->hh.next) {
    printf("Word: %s, List Address: %ld, List Size: %d\n", s->word, (long int)s->head, s->list_size);
    listPrint(s->head);
    printf("\n");
  }
  printf( "Printed Hashtable\n" );
}
示例#10
0
int
etimerDisplay(
         HETIMER timer,
         int msa
         )
{
  etimerStruct *tm = (etimerStruct *)timer;
  if(msa);

  if (!timer) return RVERROR;
  listPrint(tm->timer, (void*)(INTPTR)msaTimer);
  return TRUE;
}
示例#11
0
文件: tposs.c 项目: dokterp/aldor
int
tpossPrint(FILE *fout, TPoss tp)
{
	switch ((UAInt) tp)
	{
		case 0:
			return fprintf(fout, "[]");
		case (UAInt) tuniInappropriateTPoss:
			return fprintf(fout, "(inappropriate)");
		case (UAInt) tuniNoValueTPoss:
			return fprintf(fout, "(no value)");
		case (UAInt) tuniUnknownTPoss:
			return fprintf(fout, "(unknown)");
		case (UAInt) tuniErrorTPoss:
			return fprintf(fout, "(error)");
		default:
			return listPrint(TForm)(fout, tp->possl, tfPrint);
	}
}
示例#12
0
文件: axlobs.c 项目: hemmecke/aldor
int
obPrint(FILE *fout, Pointer ob)
{
	if (!ob) return fprintf(fout, "OB_0");

	switch (obCode(ob)) {
	case OB_Bogus:	 bug("Bad object.");
	case OB_BTree:	 return btreePrint(fout, (BTree) ob);
	case OB_BInt:	 return bintPrint(fout,	 (BInt) ob);
	case OB_Bitv:	 return bitvPrint(fout, (BitvClass) NULL, (Bitv) ob);
	case OB_String:	 return strPrint(fout,	 (String) ob,
				'"', '"', '\\', "\\%#x");
	case OB_Buffer:	 return bufPrint(fout,	 (Buffer) ob);
	case OB_List:	 return listPrint(Pointer)(fout, (PointerList) ob,
				obPrint);
	case OB_Table:	 return tblPrint(fout, (Table) ob,
				(TblPrKeyFun) obPrint, (TblPrEltFun) obPrint);
	case OB_Symbol:	 return symPrint(fout, (Symbol) ob);
	case OB_SExpr:	 return sxiWrite(fout, (SExpr) ob, SXRW_Default);
	case OB_CCode:	 return ccoPrint(fout, (CCode) ob, CCOM_StandardC);
	case OB_JCode:	 return fprintf(fout, "java");

	case OB_SrcLine: return slinePrint(fout, (SrcLine) ob);
	case OB_Token:	 return tokPrint(fout, (Token) ob);
	case OB_Doc:	 return docPrint(fout, (Doc) ob);
	case OB_AbSyn:	 return abPrint(fout, (AbSyn) ob);
	case OB_Syme:	 return symePrint(fout, (Syme) ob);
	case OB_TForm:	 return tfPrint(fout, (TForm) ob);
	case OB_TPoss:	 return tpossPrint(fout, (TPoss) ob);
	case OB_TConst:	 return tcPrint(fout, (TConst) ob);
	case OB_TQual:	 return tqPrint(fout, (TQual) ob);
	case OB_Foam:	 return foamPrint(fout, (Foam) ob);

	case OB_Lib:
	case OB_Archive:
	default:	 return fprintf(fout, "%p->OB_%d", ob, obCode(ob));
	}
}
示例#13
0
文件: oldlist.c 项目: theme/dsaa
node* selSort( node *head ){
    if ( NULL == head || NULL == head->next)
        return head;
    node *m,*n;

    m = head;
    n = head->next;
    while( NULL != n){
        printf("ss- ");
        listPrint( head );
        while( NULL != n){
            if ( n->data < m->data)
            {
                int tmp = n->data;
                n->data = m->data;
                m->data = tmp;
            }
            n = n->next;
        }
        m = m->next;
        n = m->next;
    }
    return head;
}
示例#14
0
文件: token.c 项目: dokterp/aldor
int
toklistPrint(FILE *fout, TokenList tl)
{
	return listPrint(Token)(fout, tl, tokPrint);
}
示例#15
0
文件: freevar.c 项目: dokterp/aldor
int
fvPrint(FILE * fout, FreeVar fv)
{
	return listPrint(Syme)(fout, fv->symes, symePrint);
}
示例#16
0
文件: kp8.c 项目: BlagoProg/MAI
int main(void)
{
	const int N = 10;
	int i, isFound, action, pos, arg;
	List list;
	Iterator it;

	listCreate(&list, N);

	do
	{
		printf("Меню:\n");
		printf("1) Вставить элемент\n");
		printf("2) Удалить элемент\n");
		printf("3) Печать списка\n");
		printf("4) Размер списка\n");
		printf("5) Выполнить задание над списком\n");
		printf("6) Выход\n");
		printf("Выберите действие: ");
		scanf("%d", &action);

		switch (action)
		{
			case 1:
			{
				printf("Введите позицию элемента: ");
				scanf("%d", &pos);
				printf("Введите значение элемента (1 - true, 0 - false): ");
				scanf("%d", &arg);

				if (arg != 0 && arg != 1)
					printf("Ошибка. Введено недопустимое значение\n");
				else
					listInsert(&list, pos - 1, arg);

				break;
			}

			case 2:
			{
				printf("Введите номер элемента: ");
				scanf("%d", &pos);

				listRemove(&list, pos - 1);

				break;
			}

			case 3:
			{	
				listPrint(&list);

				break;
			}

			case 4:
			{
				printf("Длина списка: %d\n", listSize(&list));

				break;
			}

			case 5:
			{
				printf("Введите значение: ");
				scanf("%d", &arg);
				
				if (arg != 0 && arg != 1)
					printf("Ошибка. Введено недопустимое значение\n");
				else
				{
					it = itFirst(&list);

					isFound = 0;

					for (i = 0; i < listSize(&list); i++)
					{
						if (itFetch(&it) == arg)
						{
							while (!listEmpty(&list))
								listRemove(&list, 0);

							isFound = 1;

							break;
						}

						itNext(&it);
					}

					if (isFound)
						printf("Список был очищен, так как в нем было найдено введенное значение\n");
					else
						printf("Список не был очищен, так как в нем не найдено введенное значение\n");
				}

				break;
			}

			case 6: break;

			default:
			{
				printf("Ошибка. Такого пункта меню не существует\n");

				break;
			}
		}
	}
	while (action != 6);

	listDestroy(&list);

	return 0;
}
示例#17
0
文件: kp8.c 项目: BlagoProg/MAI
int main(void)
{
	const int N = 10;
	int i, isFound, action, pos, arg;
	List list;
	Iterator it1, it2;

	listCreate(&list, N);

	do
	{
		printf("Меню:\n");
		printf("1) Вставить элемент\n");
		printf("2) Удалить элемент\n");
		printf("3) Печать списка\n");
		printf("4) Подсчет длины списка\n");
		printf("5) Выполнить задание над списком\n");
		printf("6) Выход\n");
		printf("Выберите действие: ");
		scanf("%d", &action);

		switch (action)
		{
			case 1:
			{
				printf("Введите позицию элемента: ");
				scanf("%d", &pos);
				printf("Введите значение элемента (1 - true, 0 - false): ");
				scanf("%d", &arg);

				if (arg != 0 && arg != 1)
					printf("Ошибка. Введено недопустимое значение\n");
				else
					listInsert(&list, pos - 1, arg);

				break;
			}

			case 2:
			{
				printf("Введите номер элемента: ");
				scanf("%d", &pos);

				listRemove(&list, pos - 1);

				break;
			}

			case 3:
			{
				if (listEmpty(&list))
					printf("Список пуст\n");
				else
					listPrint(&list);

				break;
			}

			case 4:
			{
				printf("Длина списка: %d\n", listSize(&list));

				break;
			}

			case 5:
			{
				it1 = itFirst(&list);
				it2 = it1;

				itNext(&it2);

				for (i = 0; i < listSize(&list) / 2; i++)
				{
					listSwapElems(&it1, &it2);

					itNext(&it1);
					itNext(&it1);
					itNext(&it2);
					itNext(&it2);
				}

				break;
			}

			case 6: break;

			default:
			{
				printf("Ошибка. Такого пункта меню не существует\n");

				break;
			}
		}
	}
	while (action != 6);

	listDestroy(&list);

	return 0;
}