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; }
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! }
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; }
int absPrint(FILE *fout, AbSub sigma) { if (sigma == absFail()) return fprintf(fout, "[ FAIL ]"); else return listPrint(AbBind)(fout, sigma->l, absPrintBinding); }
/* * 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); } };
void tcFini(void) { if (DEBUG(tc)) { listPrint(TConst)(dbOut, tcList, tcPrint); } if (tcCount != 0) bug("%d constraints not checked", tcCount); }
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; }
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" ); }
int etimerDisplay( HETIMER timer, int msa ) { etimerStruct *tm = (etimerStruct *)timer; if(msa); if (!timer) return RVERROR; listPrint(tm->timer, (void*)(INTPTR)msaTimer); return TRUE; }
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); } }
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)); } }
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; }
int toklistPrint(FILE *fout, TokenList tl) { return listPrint(Token)(fout, tl, tokPrint); }
int fvPrint(FILE * fout, FreeVar fv) { return listPrint(Syme)(fout, fv->symes, symePrint); }
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; }
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; }