Как сделать очередью?

Создать список из случайных целых чисел и поменять местами элементы, содержащие максимальное и минимальное значения.

#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
#include <locale.h>
#include <ctype.h>

#pragma warning(disable:4996)

struct listItem {
    int info;
    struct listItem *next;
};

listItem* createList(int size) {
    struct listItem *first = NULL, *tmp = NULL;

    for (int i = 0; i < size; i++) {
        tmp = first;
        first = new listItem;
        first->next = tmp;
        first->info = rand() % 100;
    }

    return first;
}

void switchMaxAndMin(listItem* list) {
    listItem* origin = list;
    int max = list->info;
    int min = list->info;

    //нахождение мах и мин
    while (list) {
        if (list->info > max) {
            max = list->info;
        }

        if (list->info < min) {
            min = list->info;
        }
        list = list->next;

    }
    printf("Min element value :%d\n Max element value:%d\n", min, max);
    list = origin;
    //replacing max with min and min with max
    while (list) {
        if (list->info == max) {
            list->info = min;
        }
        else if (list->info == min) {
            list->info = max;
        }
        list = list->next;
    }
}

void printList(listItem* list) {
    int i = 1;
    while (list) {
        printf("%d. %d, next->%p\n", i, list->info, list->next);
        list = list->next;
        i++;
    }
}

int main() {

    srand(time(NULL)); //random
    /*listItem *list = createList(10);
     printf("Создание однонаправленного списка из случайных чисел:\n", 10);
     printList(list);
     printf("\n");

     switchMaxAndMin(list);
     printf("Замена элементов местами содержащие мах и мин значение элементов:\n");
     printList(list);
     _getch();*/

    // выбор по условию
    int vibor;
    printf("1. Task completion\n0. Exit\n\n");    //n1 – создание \n2 – просмотр записи\n3 – добавление
    элемента\n4 – выполнение задачи\n5 – выход\n\n
        fflush(stdin);

    while (true)
    {
        printf(">> Enter number list (0 - Exit):");
        scanf("%d", &vibor);
        switch (vibor)
        {
        case 1:
            {
                int size;
                printf("enter the number of items: ");
                scanf("%d", &size);
                srand(time(NULL)); //random
                listItem *list = createList(size);
                //printf("создание однонаправленного списка из случайных чисел:\n", 10);
                printList(list);
                printf("\n");
                switchMaxAndMin(list);
                //printf("замена элементов местами содержащие мах и мин значение элементов:\n");
                printList(list);
                _getch();
                break;
            }
        case 0:
            {
                exit(0);
                break;
            }
        }

    }
}

Ответы (0 шт):