Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 23.03.2019
Сообщений: 46

Задание на очередь на основе списка

26.03.2019, 20:06. Показов 4351. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Реализовать класс очередь с приоритетом (MyPriorityQueue<T>) на основе односвязного списка с методами:
- MyPriorityQueue(Comparetor<T> c) // конструктор
- void add(T value) // добавить (с учетом приоритета)
- T poll() // получить первый элемент
- T peek() // получить первый, не убирая из очереди
- int size() // размер очереди

Привести код демонстрации работы с классом MyPriorityQueue<T>.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.03.2019, 20:06
Ответы с готовыми решениями:

Очередь на основе списка
Есть код, очередь на основе списка, как переделать, чтоб каждому элементу можно было добавлять ещё приоритет и выводить их по приоритету? ...

Очередь на основе списка
Как сделать, чтоб можно было вывести очередь по возрастанию по полю prior?? // L2.cpp: определяет точку входа для консольного...

Очередь на основе односвязного списка
Пишет:&quot;cl.exe завершилась с кодом 2&quot; не знаю в чем проблема подскажите в чем она может заключаться ? #include&lt;iostream&gt; ...

1
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
26.03.2019, 22:24
Лучший ответ Сообщение было отмечено Saruman067 как решение

Решение

Java
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
91
92
93
94
95
96
97
98
99
100
101
102
import java.util.Comparator;
 
public class MyPriorityQueue<T> {
    private Node first;
    private Comparator<T> c;
    private int size;
 
    MyPriorityQueue(Comparator<T> c) {
        if (c != null) {
            this.c = c;
        } else {
            throw new IllegalArgumentException("Comparator not may be null...");
        }
    }
 
    public int size() {
        return this.size;
    }
 
    public boolean add(T value) {
        boolean result;
        if (result = value != null) {
            if (this.size == 0) {
                this.first = new Node(value);
            } else {
                Node last = null;
                for (Node node = this.first; node != null; node = node.next) {
                    if (this.c.compare(node.value, value) >= 0) {
                        break;
                    }
                    last = node;
                }
                if (last == null) {
                    Node first = new Node(value);
                    first.next = this.first;
                    this.first = first;
                } else {
                    Node temp = last.next;
                    last.next = new Node(value);
                    last.next.next = temp;
                }
            }
            this.size++;
        }
        return result;
    }
 
    public T peek() {
        return this.size() == 0 ? null : this.first.value;
    }
 
    public T poll() {
        T first = null;
        if (this.size() > 0) {
            first = this.first.value;
            this.first = this.first.next;
            size--;
        }
        return first;
    }
 
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder("[");
        int count = 0;
        for (Node node = this.first; node != null; node = node.next) {
            sb.append(node.value);
            if (count++ < this.size() - 1) {
                sb.append(", ");
            }
        }
        return sb.append("]").toString();
    }
 
    private class Node {
        private Node next;
        private T value;
 
        Node(T value) {
            this.value = value;
        }
    }
}
 
class MyPriorityQueueTest {
    public static void main(String[] args) {
        MyPriorityQueue<Integer> queue = new MyPriorityQueue<>(Comparator.comparing(Integer::new));
        queue.add(4);
        queue.add(2);
        queue.add(7);
        queue.add(3);
        queue.add(6);
        System.out.println("Size: " + queue.size() + "; queue: " + queue);
        System.out.println("peek(): " + queue.peek());
        System.out.println("pool(): " + queue.poll() + "; queue: " + queue);
        System.out.println("pool(): " + queue.poll() + "; queue: " + queue);
        System.out.println("pool(): " + queue.poll() + "; queue: " + queue);
        System.out.println("pool(): " + queue.poll() + "; queue: " + queue);
        System.out.println("pool(): " + queue.poll() + "; queue: " + queue);
        System.out.println("pool(): " + queue.poll() + "; queue: " + queue);
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.03.2019, 22:24
Помогаю со студенческими работами здесь

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

Очередь на основе односвязного списка
Задание: &quot;Реализовать очередь на основе односвязного списка&quot; Вообщем сделал простую очередь, вопрос, как её реализовать с помощью списка?...

Очередь с приоритетным исключением на основе односвязного списка
Реализовать очередь с приоритетным исключением на основе односвязного списка. Для этого разработать следующие функции: 1. Помещение...

Пример использование стека на основе массива и на основе двунаправленного списка
здраствуте, можете привести примеры использывания стека на основе массива(1 код) и стек на основе двунаправленного списка(2...

Очередь на основе массива
когда создаю пустую очередь размерностью 2 в main() вот так BoundQueue &lt;int&gt; a(2); выводится ошибка:main.cpp(13) : error C2259:...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Ниже машинный перевод статьи The Thinkpad X220 Tablet is the best budget school laptop period . Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы,. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru