1 / 1 / 0
Регистрация: 03.06.2013
Сообщений: 30
|
||||||
1 | ||||||
Стек и Очередь в С++(кусок кода написал, но дальше не могу)09.10.2013, 09:25. Показов 1373. Ответов 19
Метки нет (Все метки)
Я описал вроде как саму очередь и функцию удаления контейнера,а самое главное пока что-то никак не пойму как делать. Помогите пожалуйста.Вот условие, а кусок кода ниже:
Определить структуру очереди и разработать функции, которые необходимы для работы с заданным контейнером: функция складывания элемента push(память выделять динамически), функцию извлечения элемента pop, функцию печати содержимого контейнера на экран, функцию удаления контейнера.Создать программное приложение, в котором создается контейнер и заполняется элементами, которые в качестве данных сберегают уникальные числа диапазоном от 1 до 100. Поместить максимальный элемент очереди на первую позицию. После чего все созданные контейнеры удаляются. Глобальные переменные не использовать. Функция main предназначена только для вызова функций пользователя. Кусок кода(удаление наверное рано было писать, но написал все,что примерно понял как делать, если оно конечно правильно, помогите пожалуйста дописать основную часть):
Основная часть,это я имею ввиду "поместить макс. элемент на первую позицию". Эту, самую главную функцию не знаю как написать.
0
|
09.10.2013, 09:25 | |
Ответы с готовыми решениями:
19
Написал половину кода уравнение дальше ступор( Не могу понять кусок кода Не могу понять кусок кода.Пары простых чисел Заполнить очередь и стек и поменять их содержимое местами через дополнительный стек. |
1 / 1 / 0
Регистрация: 03.06.2013
Сообщений: 30
|
|
09.10.2013, 19:26 [ТС] | 3 |
Очередь типа ФИФО. Я предполагаю,что нужно ее как-то пересобрать. Найти этот максимальный элемент и может собрать новую очередь. Но как точно это сделать я не знаю. Но то,что очередь типа ФИФИ это точно. В задание указано так.
0
|
1 / 1 / 0
Регистрация: 03.06.2013
Сообщений: 30
|
|
09.10.2013, 19:34 [ТС] | 5 |
Понятия не имею,зачем написл стек в заголовке. Извиняюсь. Очередь типа Первый зашел первый вышел
0
|
88 / 83 / 21
Регистрация: 08.08.2012
Сообщений: 737
|
|
09.10.2013, 20:01 | 6 |
создаете указатель который будет указывать на максимальный элемент очереди...проходите по очереди и ищете максимальный....после нахождения максимального играетесь с указателями до и после максимального, а сам максимальный элемент вставл в нужное место
0
|
1 / 1 / 0
Регистрация: 03.06.2013
Сообщений: 30
|
|
09.10.2013, 20:29 [ТС] | 7 |
Напишите пожалуйста, если не сложно, этот участок кода. Буду очень признателен.
0
|
1 / 1 / 0
Регистрация: 03.06.2013
Сообщений: 30
|
|
09.10.2013, 23:26 [ТС] | 9 |
Где применить можно? Ну наверное если у нас есть цены какого-то товара, то найти самую большую и пересобрать очередь исходя из "высоты" данных цен. Но мне нужно просто с числами, как в условии..Это лабораторная работа. Мне просто сдать надо. Это не профильный мой предмет. Тут просто сдать и все. По условию у меня там элементы - это числа диапазоном от 1 до 100.
Добавлено через 2 минуты Может, если мы эти цены, к примеру, пересоберем в зависимости от "высоты", то будет что-то вроде сортировки по возрастанию или убыванию.
0
|
Антикодер
1804 / 869 / 48
Регистрация: 15.09.2012
Сообщений: 3,081
|
|
10.10.2013, 00:38 | 10 |
ну это можно и циклом сделать, если я правильно вас понял, это скорее сортировка, непонятно зачем использовать очередь в этом случае, а я спрашиваю где можно использовать такую программную структуру-очередь?
включите мозг ответы простые.
0
|
1 / 1 / 0
Регистрация: 03.06.2013
Сообщений: 30
|
|
10.10.2013, 00:51 [ТС] | 11 |
Например для описания некой очереди из жизни: человек подал заявку на что-то. Первый подал- первую и обработали. Заявка, которая была подана последней будет обработана последней. Возможно, в программе будут обрабатываться некие данные или выполняться некие операции, в зависимости от того, что было подано первым,а что после него.
0
|
Антикодер
1804 / 869 / 48
Регистрация: 15.09.2012
Сообщений: 3,081
|
|
10.10.2013, 09:23 | 12 |
причем может понадобиться заявку с наибольшим номером поставить на первое место(если бы у нас было два поля у объектов, которые мы ставим в очередь, типа int, я бы сказал, что у заявки есть есть номер и приоритет, и сортировать нужно именно по приоритетам)
но куда полезнее вставить в эту очередь список собственных дел, которые у вас появляются, назначить каждому делу номер и приоритет(конечно нужно добавить ещё и название) а потом всю очередь сортировать в порядке убывания приоритета. дела которые имеют самый большой приоритет будут первыми появляться из очереди. Добавлено через 5 минут а вы в курсе, что в C++ struct и class отличаются только тем, что у struct поля по умолчанию public, а у класса private? поэтому методы для работы со структурой можно писать в самой структуре, а не отдельными функциями. Вы уверены, что вам нужны именно отдельные от структуры функции?
0
|
1 / 1 / 0
Регистрация: 03.06.2013
Сообщений: 30
|
|
10.10.2013, 11:56 [ТС] | 13 |
Я слышал это, но требование моего Учителя описать это в отдельной функции пользователя.
0
|
Антикодер
1804 / 869 / 48
Регистрация: 15.09.2012
Сообщений: 3,081
|
|
10.10.2013, 12:37 | 14 |
ну ... фаулер советует вначале писать модульные тесты. Для вашего случая надо сделать main, который будет тестировать функции очереди.
Напишите шаблон(в cмысле низкокачественные наброски, а не C++ Template) такого тестирования в main для функций. наверно есть смысл сказать, что в вашем коде утечка памяти.
0
|
1 / 1 / 0
Регистрация: 03.06.2013
Сообщений: 30
|
|
10.10.2013, 12:43 [ТС] | 15 |
Если это возможно, напишите мне пожалуйста эту функцию для помещения максимального элемента на первую позицию. Очень завтра сдать надо. Я сам это не напишу.
0
|
Антикодер
1804 / 869 / 48
Регистрация: 15.09.2012
Сообщений: 3,081
|
||||||
10.10.2013, 12:53 | 16 | |||||
напишите...
вы знаете, как выделять место в памяти
для начала я бы на вашем месте создал цикл, который заполняет очередь случайными числами(без реализации самой очереди)
0
|
1 / 1 / 0
Регистрация: 03.06.2013
Сообщений: 30
|
||||||||||||||||
10.10.2013, 21:38 [ТС] | 17 | |||||||||||||||
написал рандом в отдельную функцию, но там в конце не знаю точно, как сделать так,чтобы мои сгенерированные иксы в очередь запихало.
тут моя функция добавления элемента в очередь:
0
|
Антикодер
1804 / 869 / 48
Регистрация: 15.09.2012
Сообщений: 3,081
|
|
10.10.2013, 21:50 | 18 |
а вы не могли бы скачать какую нить книгу из Литература C++
и хотя бы её прослитать? или может у вас какая нибудь другая литература есть вам нужно найти пример как пользоваться операцией delete вот кстати пример очереди Очередь пока о поиске максимального элемента забудьте у вас сама очередь ещё доконца не работает https://www.cyberforum.ru/sear... id=6618041 - ну тут сами можете по темам поискать, легко найдёте готовое решение. Очередь FIFO -тут готовая очередь на функциях
0
|
1 / 1 / 0
Регистрация: 03.06.2013
Сообщений: 30
|
||||||
11.10.2013, 23:41 [ТС] | 19 | |||||
Не компилируется. Скажите пожалуйста в чем ошибка:
0
|
Антикодер
1804 / 869 / 48
Регистрация: 15.09.2012
Сообщений: 3,081
|
|
12.10.2013, 00:41 | 20 |
когда компилятор пытается скомпилировать программу, он вам пытается рассказать в чем проблема если такая возникла, вы можете найти место где он выводит вам сообщения, и скопировать это сообщение сюда, если сами его не поймёте(переведя на русский язык)
вы уже почти заставили меня скомплировать ваш код, но я ещё пока торможу поэтому жду сообщения компилятора не надо так делать писать new в push а delete в main delete лучше попестить в pop (или можете пока забить на утечку памяти и просто удалить delete) чтоб отработать остальные моменты. зачем srand из начала программы убрали? он нужен может завтра найду время запустить ваш код(но ничего не обещаю)
0
|
12.10.2013, 00:41 | |
12.10.2013, 00:41 | |
Помогаю со студенческими работами здесь
20
Написал сайт, Незнаю что дальше Стек и очередь. Задачи никогда не попадают в стек Связать кусок кода с другим куском кода на С++ Стек. Очередь Стек и очередь Стек и очередь Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |