Как сделать очередью?
Создать список из случайных целых чисел и поменять местами элементы, содержащие максимальное и минимальное значения.
#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;
}
}
}
}