Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 09.04.2020
Сообщений: 41
1

Линейные списки

16.04.2020, 09:18. Показов 1793. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Из входной последовательности целых чисел построить список. Вывести список на экран. Удалить из списка узлы, содержащие числовое значение, наиболее часто встречающееся во входной последовательности. Вывести список на экран.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.04.2020, 09:18
Ответы с готовыми решениями:

Линейные списки
Ребят, подскажите в чем ошибка:( Компилятор не находит, а при запуске вылетает. Я подозреваю, что...

Односвязные линейные списки
Подскажите пожалуйста, как заменить содержимое файла перечнем символов, которые в нем...

Линейные Односвязные Списки С++
Разработать и реализовать программу создания и обработки линейного односвязного списка с одним...

Односвязные линейные списки
Здравствуйте! Помогите пожалуйста. Даны текстовый файл и строка s. Группы символов,...

1
1505 / 968 / 812
Регистрация: 30.04.2016
Сообщений: 3,334
16.04.2020, 12:53 2
Лучший ответ Сообщение было отмечено Gg11 как решение

Решение

Gg11, здравствуйте! Вот, не самый быстрый, но, вроде бы, рабочий вариант. Если наиболее часто встречающихся элементов несколько, то будет удален только один из них, хотя и это, если необходимо, можно наладить:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <iostream>
#include <map>
 
    using namespace std;
 
struct List {
    int key;
    List* next;
};
 
List* head = NULL;
 
void add(int key) {
    List* temp = new List;
    temp->key = key;
    temp->next = NULL;
    if (head == NULL) {
        head = temp;
    } else {
        List* ptr = head;
        while (ptr->next != NULL) {
            ptr = ptr->next;
        }
        ptr->next = temp;
    }
}
 
List* del_node(List* head, int key) {
    List* prev = head;
    List* curr = head->next;
    if (prev->key == key) {
        head = curr;
        delete prev;
    } else {
        while (1) {
            if (curr->key == key) {
                if (curr->next == NULL) {
                    prev->next = NULL;
                    delete curr;
                    break;
                } else {
                    prev->next = curr->next;
                    delete curr;
                    break;
                }
            }
            curr = curr->next;
            prev = prev->next;
        }
    }
    return head;
}
 
void del_most_frequent(int key, int n) {
    for (int i = 1; i <= n; i++) {
        head = del_node(head, key);
    }
}
 
void print() {
    if (head == NULL) {
        cout << "Empty!\n";
    }
    List* curr = head;
    while (curr != NULL) {
        cout << curr->key << " ";
        curr = curr->next;
    }
}
 
int main() {
    int n, key, max, value;
    map<int, int> map;
    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> key;
        map[key]++;
        add(key);
    }
    max = 0;
    for (auto it = map.begin(); it != map.end(); ++it) {
        if (it->second > max) {
            max = it->second;
            value = it->first;
        }
    };
    del_most_frequent(value, max);
    print();
    return 0;
}
1
16.04.2020, 12:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.04.2020, 12:53
Помогаю со студенческими работами здесь

Линейные двусвязные списки
Проверьте пожалуйста. 1.Дан список. Найти указатель на его последний элемент. template&lt;typename...

Задача на линейные списки
Задание : в файловой системе каталог файлов организован как линейный список. Для каждого файла в...

однонаправленые линейные списки
много смотрел в инете, но ничего путного так и не нашел, в чем отличие списка от структур как их...

Односвязные линейные списки
Доброго времени суток. Передо мной стоит задача написание программы, которая принимает два списка,...

Односвязные линейные списки
Помогите пожалуйста с задачей со списками, т.к вообще не могу в них разобраться. Задача такая: даны...

Односвязные линейные списки
Здравствуйте! Есть данная функция чтения данных и занесения их в создаваемый список struct LIST {...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru