Exemple #1
0
void testInsertAtN(){
    Node *list = makeRandListOfSizeN(100);
    int vals[] = {16,   1024,   99, -10,    -54098};
    int poss[] = {0,    40,     22, 99,     32};

    // Test insertion into null list
    Node *test = NULL;
    test = insertAtN(test, vals[0], poss[0]);
    assert(test->val == vals[0]);

    // Insert at various places
    for(int i = 0 ; i < (int)getArrLen(vals) ; i++){
        list = insertAtN(list, vals[i], poss[i]);
    }

    // Ensure length is correct
    assert(getNumElements(list) == 100 + (int)getArrLen(vals));

    // Insert random value at end
    int newRandVal = arc4random();
    list = insertAtN(list, newRandVal, getNumElements(list));

    DArray arr = arrayify(list);
    // Ensure that value (plus a couple other inserted ones) are correct
    assert(arr.contents[arr.size-1] == newRandVal);
    assert(arr.contents[poss[0]] == vals[0]);
    assert(arr.contents[poss[2]] == vals[2]);

    free(arr.contents);
    delList(list);
    delList(test);
    printf(">> Test insert at n completed! <<\n");
}
Exemple #2
0
void testDelList(){
    Node *list = NULL;
    delList(list);

    list = makeRandListOfSizeN(10);
    //printList(list);
    delList(list);

    list = makeRandListOfSizeN(100);
    //printList(list);
    delList(list);
    printf(">> Test del list completed! <<\n");
}
Exemple #3
0
void testFindElement(){
    int vals[] = {0, 3, -153, 33895, 3049, 101010};
    int testCases[] = {3,   101010, -10,    0,      15,     1};
    bool answers[] =  {true, true,  false,  true,   false,  false};

    assert((int)getArrLen(testCases) == (int)getArrLen(answers));

    Node *list= NULL;
    assert(findElement(list, testCases[0]) == NULL);

    for(int i = 0 ; i < (int)getArrLen(vals) ; i++){
        list = addToHead(list, vals[i]);
    }

    for(int i = 0 ; i < (int)getArrLen(vals) ; i++){
        Node *temp = findElement(list, testCases[i]);
        assert((temp != NULL) == answers[i]);
        printf("Test %d in testFindElement passed!\n", i);
    }
#if DELETE_DEFINED
        delList(list);
#endif

    printf(">> Test find element completed! <<\n");
}
void delList(Node *l){
    if(!l)
        return;
    Node *temp = l->next;
    free(l);
    delList(temp);
}
Exemple #5
0
int _tmain(int argc, _TCHAR* argv[])
{
	int m = 0;
	int n = 0;
	List1Element * head = createList();
	printf("enter the quantity of conspects of vasya\n");
	scanf ("%d", &m);
	printf ("now enter chatacteristics of each conspect\n");
	for (int i = 0; i < m; i++)
	{
		scanf("%d", &n);
		insertEl(head, n);
	}
	n = 0;
	m = 0; 

	printf("enter the quantity of conspects of petya\n");
	scanf ("%d", &m);
	printf ("now enter chatacteristics of each conspect\n");
	for (int i = 0; i < m; i++)
	{
		scanf("%d", &n);
		insertEl(head, n);
	}

	printList(head);
	delList(head);
	scanf("%*s");
	return 0;
}
Exemple #6
0
HashTable* delHashTable(HashTable* ht) {
    int i;
    for (i = 0; i < ht->size; i++) {
        ht->listArray[i] = delList(ht->listArray[i]);
    }
    free(ht);
    return NULL;
}
Exemple #7
0
void testAddToHead(){
    Node *list = NULL;
    list = addToHead(list, 5);
    printList(list);
    list = addToHead(list, 19);
    printList(list);
#if DELETE_DEFINED
    delList(list);
#endif
    printf(">> Test add to head completed! <<\n");
}
Exemple #8
0
int main()
{
	printf("vvedyte col-vo elementov: \n");
	int count = 0;
	scanf("%d", &count);
	printf("kakoy dolzhen ostat'sya\n", count);
	int i = 0;
	scanf("%d", &i);
	plst head = NULL;
	int k = runCount(head, i, count);
	delList(head);
	return 0;
}
Exemple #9
0
void testGetNumElements(){
    int vals[] = {0, 3, -153, 33895, 3049, 101010};
    Node *list= NULL;
    assert(getNumElements(list) == 0);
    for(int i = 0 ; i < (int)getArrLen(vals) ; i++){
        list = addToHead(list, vals[i]);
        assert(getNumElements(list) == i+1);
    }
#if DELETE_DEFINED
        delList(list);
#endif
    printf(">> Test get num elements completed! <<\n");
}
Exemple #10
0
void stressTests(){
    for(int i = 0 ; i <= 1000 ; i++){
        Node *list = makeRandListOfSizeN(i * 1000);
        delList(list);
        if(!(i%50)){
            printf("Made and deleted list of size %d...\n", i*1000);
        }
    }

    int hellListSize = 10000000;
    Node *list = makeRandListOfSizeN_bounded(hellListSize, 5000000);
    printList(list);

    for(int i = 0 ; i < 5000000 ; i++){
        Node *t = findElement(list, i);
        if(t){
            int pos = getNumElements(t->next);
            printf("Found %d in list at pos %d!\n", i, pos);
            break;
        }
    }
    for(int i = 0 ; i < 3000 ; i++){
        int op = arc4random() % 4;
        switch(op){
            case 0: list = insertAtN(list, arc4random(),
                              arc4random_uniform(hellListSize)); break;
            case 1: list = deleteAtN(list, arc4random_uniform(hellListSize)); break;
            case 2: list = changeValueAtN(list, arc4random(),
                                   arc4random_uniform(hellListSize)); break;
            case 3: list = addToTail(list, arc4random()); break;
        }
        if(!(i%50))
            printf("%d random operations completed...\n", i);
    }
    delList(list);
}
Exemple #11
0
void testMakeList(){
    int testCases[] = {8, 'n', -1, 149327859816738, -583492752983568732};

    for(int i = 0 ; i < (int)getArrLen(testCases) ; i++){
        Node *list;
        list = makeList(testCases[i]);
        printList(list);
#if DELETE_DEFINED
        delList(list);
#endif
    }

    printf(">> Test make list completed! <<\n");

}
Exemple #12
0
void testAddToTail(){
    int vals[] = {0, 3, -153, 33895, 3049, 101010};
    Node *list = NULL;
    for(int i = 0 ; i < (int)getArrLen(vals) ; i++){
        list = addToTail(list, vals[i]);
    }
    DArray test = arrayify(list);
    assert(test.size == (int)getArrLen(vals));
    for(int i = 0 ; i < (int)getArrLen(vals) ; i++){
        assert(test.contents[i] == vals[i]);
    }
    free(test.contents);
    delList(list);
    printf(">> Test add to tail completed! <<\n");
}
Exemple #13
0
urtBot *endBot(urtBot *bot)
{
    list *pt = NULL;

    if(bot == NULL)
        return bot;

    pt = delList(&(bot->servers));

    free(bot);
    bot = NULL;

    return bot;


}
Exemple #14
0
int _tmain(int argc, _TCHAR* argv[])
{
	int a = 0;
	printf("Enter twenty numbers which you want to sort:\n");
	List1Element *head = createList();
	for (int i = 0; i < 20; i++)
	{
		scanf("%d", &a);
		insertEl(head, a);
	}
	head->next = mergeSort(head->next);
	printf("Sorted: ");
	printList(head);
	delList(head);

	return 0;
}
Exemple #15
0
Fichier : main.c Projet : ninux/mc
int main(int argc, char **argv)
{
    printf("-- Add entries\n");
    addEntry("Nino", "Ninux");
    addEntry("Dennis", "Ritchie");
    addEntry("Brian", "Kerninghan");
    addEntry("Linus", "Torvalds");
    addEntry("Richard", "Stallman");
    addEntry("Konrad", "Zuse");

    printf("-- Dump list\n");
    plist();

    printf("-- Remove list\n");
    delList();

    return 0;
}
Exemple #16
0
void main(void)
{
	int i = 1;
	int x = 0;
	List1Element * head = createList();
	intro();
	scanf ("%d", &i);
	while (i)
	{
		switch (i)
		{
			//case 0:
			//	delList(head);
			//	break;
			case 1 :
				printf("enter the value\n");
				scanf("%d", &x);
				insertEl (head, x);
				break;
			case 2 :
				if (isEmpty(head))
					printf("sorry it seems to be nothing here\n");
				else
					printf("%d\n", getMin(head));
				break;
			case 3:
				if (isEmpty(head))
					printf("sorry it seems to be nothing here\n");
				else
					printList(head);
					printf("\n");
				break;
			default:
				printf("no no no, you're doing it wrong!\n");
		}
		if (i)
		{
			intro();
			scanf ("%d", &i);
		}
	}
	delList(head);
	delete head;
}
Exemple #17
0
Polygon* cpyPolygon(Polygon* P)
{
	unsigned int i;
	Polygon* newP;
	List* vxList = newList();

	// Copie des Vertices
	for(i = 0; i < polyGetVxCount(P); i++)
	{
		lstAdd(vxList, cpyVertex(polyGetVertex(P, i)));
	}

	// Cas N-Gone
	if(polyGetCenter(P) != NULL)
	{
		newP = polyNGone(*vxList);

		const DynArr* vxDA = polyGetVertexDA(P);

		// Ajout des Internals non lié au centre
		for(i = 0; i < polyGetInternalRdCount(P); i++)
		{
			// Si relié au center, ce sera toujours le deuxième vertice (voir constructeur de N-Gone)
			if(rdGetV2(polyGetInternalRigid(P, i)) != polyGetCenter(P))
				polyAddInternal(newP, daGetID(vxDA, rdGetV1(polyGetInternalRigid(P, i))), daGetID(vxDA, rdGetV2(polyGetInternalRigid(P, i))), -1);
		}
	} else { // Cas classique
		newP = newPolygonL(*vxList);

		const DynArr* vxDA = polyGetVertexDA(P);

		for(i = 0; i < polyGetInternalRdCount(P); i++)
		{
			polyAddInternal(newP, daGetID(vxDA, rdGetV1(polyGetInternalRigid(P, i))), daGetID(vxDA, rdGetV2(polyGetInternalRigid(P, i))), -1);
		}
	}

	newP->Fixed = polyIsFixed(P);

	delList(vxList);

	return newP;
}
Exemple #18
0
int main()
{
    setlocale(0,"");
    char buffer[SIZE_buff]; // буферная строка
    List queue; // список записей
    int ch; // переменная выбора

    queue.first = queue.last = NULL; // инициализация списка

    for (;;) { // меню
        fflush(stdin);//Очистка буфера клавиатуры
        printf("1. Создание списка\n");
        printf("2. Просмотр телефонной книги \n");
        printf("3. Сохранить\n");
        printf("4. Загрузить из файла\n");
        printf("5. Вывести список\n");
        printf("0. Выйти\n");
        printf("Введите команду: ");

        fgets(buffer, SIZE_buff, stdin); sscanf(buffer, "%d", &ch);
        switch (ch) {
        case 1:
            add(queue); // добавить в список
            break;
        case 2:
            Vivod(queue); // вывод списка на экран
            break;
        case 3:
            save(queue); // сохранить в файл
            break;
        case 4:
            load(queue); // загрузить из файла
            break;
        case 5: VivodList(queue); // вывод списка
            break;
        case 0:
            delList(queue); // удалить список
            return 0;
        }
    }
}
Exemple #19
0
void main(int argc, char *argv[]){
	
	time_t pIntTime = time(NULL);
	struct tm* currentLocalTime = localtime(&pIntTime);
	char* dateTimeString = calloc(101, sizeof(char));
	if (currentLocalTime && dateTimeString)
		strftime(dateTimeString, 100, "%H:%M:%S", currentLocalTime);
	
	printf("%s", dateTimeString);
	

	clock_t t1 = clock();

	list lst; lst.prvi = lst.posl = lst.tek = NULL;
	FILE *input, *output;
	if ((input = fopen(argv[1], "r")) == NULL){
		fprintf(stderr, "%s:greska u otvaranju datoteke %s", argv[0], argv[1]);
		exit(1);
	}
	load(&lst, input);
	process(&lst, argv[3]);

	if ((input = fopen(argv[2], "w")) == NULL){
		fprintf(stderr, "%s:greska u otvaranju datoteke %s", argv[0], argv[1]);
		exit(1);
	}
	save(&lst, input);
	delList(&lst);
	clock_t t2 = clock();
	printf("\nVreme izvrsavanja programa je : %10.6lf\n", (double)(t2 - t1) / CLOCKS_PER_SEC);

	pIntTime = time(NULL);
	currentLocalTime = localtime(&pIntTime);
	strftime(dateTimeString, 100, "%H:%M:%S", currentLocalTime);
	printf("%s\n", dateTimeString);
	free(dateTimeString);


	system("pause");
}
Exemple #20
0
void testChangeValueAtN(){
    int vals[] = {16,   1024,   99, -10,    -54098};
    int poss[] = {0,    40,     22, 99,     32};
    Node *list = makeRandListOfSizeN(100);

    changeValueAtN(list, 0, -1);  // Should cause an error in your way of choice!
    changeValueAtN(list, 0, 300);

    for(int i = 0 ; i < (int)getArrLen(vals) ; i++){
        changeValueAtN(list, vals[i], poss[i]);
    }

    DArray arr = arrayify(list);

    for(int i = 0 ; i < (int)getArrLen(vals) ; i++){
        assert(arr.contents[i] == arr.contents[i]);
        printf("Test %d in testChangeValueAtN passed!\n", i);
    }

    free(arr.contents);
    delList(list);

    printf(">> Test change value at n completed! <<\n");
}
Exemple #21
0
void tearDown(void) {
	if (NULL != list1)
		delList(list1);
}