Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 30.11.2020
Сообщений: 31

Определение размера очереди

02.04.2021, 18:53. Показов 4043. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, пожалуйста дописать код. Необходимо выполнить следующие условия :
1. Реализовать представление очереди. Работу со структурами организовать в виде текстового меню.
2. Дополнительно разработать следующие операции:
a. определение текущего числа элементов в очереди;
b. определение размера очереди;
3. Реализовать представление дека на языке С++. Работу со структурой организовать в виде текстового меню.

Использовать библиотеки нельзя. Очередь надо составить через списки.

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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
#include <windows.h>
#include <iostream>
#include <conio.h>
#include <tchar.h>
#include <clocale>
 
using namespace std;
 
/*Объявление главной структуры*/
struct Queue
{
    int Data;
    struct Queue *next; // Указатель на следующий элемент очереди 
};
 
Queue *head; // Указатель на голову очереди
Queue *tail; // Указатель на хвост очереди
 
int kol = 0; //Количество элементов
 
void Creation();                    /*Функция, которая создает очередь*/
void Add_last(Queue *temp);         /*Функция, которая добавляет элемент в конец*/
void Head_to_tail();                /*Считывание элемента из "головы" и перенос в "хвост"*/
void show_menu();                   /*Вывод информации для главного меню*/
void menu();                        /*Главное меню*/
void Loading(struct Queue *array);  /*Загрузка данных из очереди в массив*/
void inf();                         /*Информация об элементе*/
void check_kol();                   /*Проверка на пустой список*/
 
/*Функция, которая создает очередь*/
void Creation() // Создание очереди
{
    head = (Queue *)malloc(sizeof(Queue));
    head->next = NULL;
    tail = head;
    kol = 0;
}
 
/*Проверка на пустой список*/
void check_kol()
{
    if (kol == 0)
    {
        cout << "Список пуст!" << endl;
        system("pause");
        menu();
    }
}
 
/*Функция, которая добавляет элемент в конец*/
void Add_last(Queue *temp)
{
    tail->Data = temp->Data;
    tail->next = (Queue *)malloc(sizeof(Queue));
    tail = tail->next;
    tail->next = NULL;  //обнуление указателя на следующий элемент 
    kol++;
}
 
/*Считывание элемента из "головы" и перенос в "хвост"*/
void Head_to_tail()
{
    Queue *buff = head;
    tail->Data = buff->Data;
    tail->next = (Queue *)malloc(sizeof(Queue));
    tail = tail->next;
    tail->next = NULL;
    buff = head->next;
    free(head);
    head = buff;
}
 
/*Вывод списка*/
void Tablitsa()
{
    for (int i = 0; i < kol; i++)
    {
        printf("%d) %d\n", i + 1, head->Data);
        Head_to_tail();
    }
}
 
/*Вывод информации для главного меню*/
void show_menu()
{
    system("cls");
    cout << "1 - Добавить элемент" << endl;
    cout << "2 - Просмотр одного элемента" << endl;
    cout << "3 - Просмотр всех элементов" << endl;
    cout << "4 - Выход" << endl;
}
 
/*Загрузка данных из очереди в массив*/
void Loading(struct Queue *array)
{
    for (int i = 0; i < kol; i++) {
        array[i].Data = head->Data;
        Head_to_tail();
    }
}
 
/*Ввод элементов с клавиатуры*/
void input() 
{
    system("cls");
    Queue queue;
    int num;
    cout << "Введите число: ";
    cin >> num;
    queue.Data = num;
    Add_last(&queue);
}
 
/*Информация об элементе*/
void inf()
{
    int Num;
    system("cls");
    cout << "Введите номер элемента: ";
    cin >> Num;
    Num = Num - 1;
    Queue *array = new Queue[kol];
    Loading(array);
    cout << "Число: " << array[Num].Data << endl;
}
 
/*Главное меню*/
void menu()
{
    char ch;
    show_menu();
    while (1)
    {
        ch = _getch();
        if (ch == 49)
        {
            system("cls");
            input();
            system("pause");
            menu();
        }
        if (ch == 50)
        {
            system("cls");
            check_kol();
            inf();
            system("pause");
            menu();
        }
        if (ch == 51)
        {
            system("cls");
            check_kol();
            Tablitsa();
            system("pause");
            menu();
        }
        if (ch == 52)
        {
            exit(0);
        }
    }
}
 
/*Главная функция*/
int main()
{
    setlocale(LC_ALL, "rus");
    Creation();
    menu();
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.04.2021, 18:53
Ответы с готовыми решениями:

Определение размера переменной
На C# используют Length , а какой есть аналог в с++. Знаю, что можно как-то через вектор определить длину. Прикрепляю саму функцию....

Определение размера структуры
Здравствуйте ,не могли б вы объяснить мне почему размер этой структуры 12 байт , заранее спасибо. Сама структура. struct str { ...

Определение размера массива
Код: template &lt;class T,int N&gt; int arr_sz(T (&amp;arr)) {return N;} void sum(int a){cout&lt;&lt;a;}; int main() {

4
518 / 410 / 188
Регистрация: 08.04.2013
Сообщений: 1,750
03.04.2021, 06:57
Правильно сформулируйте свои вопросы, иначе ответы будут соответствующие
Цитата Сообщение от ssoooonechka Посмотреть сообщение
Работу со структурами ???? организовать
как правильно со структурами или структурами данных ?
Цитата Сообщение от ssoooonechka Посмотреть сообщение
b. определение размера очереди;
cout << k;
Цитата Сообщение от ssoooonechka Посмотреть сообщение
a. определение текущего числа в очереди;
- cout << head->Data;
Цитата Сообщение от ssoooonechka Посмотреть сообщение
a. определение текущего числа элементов в очереди;
а это бред - а бред это хлеб по англ.
0
 Аватар для Recrut_rf
379 / 322 / 65
Регистрация: 14.10.2014
Сообщений: 1,374
03.04.2021, 10:59
Цитата Сообщение от marat_miaki Посмотреть сообщение
а это бред - а бред это хлеб по англ.
а почему бред? Заводим статическую переменную счётчик и без проблем определяем количество элементов в очереди.
Даже у STL-ной очереди есть метод size(), возвращающий количество элементов в очереди
0
518 / 410 / 188
Регистрация: 08.04.2013
Сообщений: 1,750
03.04.2021, 11:23
Recrut_rf, бред в смысле грамотности ТС, вопрос задавать грамотно тоже надо уметь, чтоб вопрос еще поняли

определение текущего числа элементов в очереди; - боед
определение текущего числа в очереди; - понятно
определение текущего элемента в очереди; - тоже ясно
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
03.04.2021, 11:37
Цитата Сообщение от ssoooonechka Посмотреть сообщение
/*Считывание элемента из "головы" и перенос в "хвост"*/
void Head_to_tail()
Здесь не надо создавать новый элемент и удалять старый. Нужно просто взять элемент, на который указывает head и поставить его в хвост.
Ну и, судя по заданию, эта функция здесь не нужна вообще.

Цитата Сообщение от ssoooonechka Посмотреть сообщение
a. определение текущего числа элементов в очереди;
b. определение размера очереди;
Для списка это вроде одно и то же.

Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
/*Вывод списка*/
void Tablitsa()
{
    int i = 0;
    for (Queue *p = head; p; p = p->next)
        printf("%d) %d\n", ++i, p->Data);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.04.2021, 11:37
Помогаю со студенческими работами здесь

Определение размера файла
Здравствуйте, я учусь на программиста, нужна помощь в программе. #include &lt;fstream.h&gt; #include &lt;windows.h&gt; #include...

Определение размера массива
Привет всем у меня несколько вопросов по языку си (компилятор gcc). 1) Есть, например след код: char* sym; char c = 'a'; ...

определение размера матрицы
Имеется массив с матрицами(трехмерный массив), над матрицами из этого массива выполняется операция, но перед ней нужно сравнить эти матрицы...

Определение размера структуры
RAD STudio 10.2 Описываем новый тип: typedef struct { WORD id; } DBHeader; При этом sizeof(DBHeader) возвращает...

Создание универсальной очереди неограниченного размера
Консольное приложение должно быть выполнено с применением технологии объектно-ориентированого программирования. В шаблоне класса...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
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
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru