|
0 / 0 / 0
Регистрация: 01.01.2019
Сообщений: 42
|
||||||
Объединить числа из двух стеков в третий стек11.12.2019, 09:39. Показов 6435. Ответов 13
Метки нет (Все метки)
Всем привет!
Столкнулась с такой проблемой - у меня есть два стека с числами (stack1, stack2), уже отсортированными, мне надо все эти числа из обоих стеков переместить в новый созданный третий стек (stack3). И вот тут не получается никак...Подскажите пожалуйста, как это можно реализовать?
0
|
||||||
| 11.12.2019, 09:39 | |
|
Ответы с готовыми решениями:
13
Заполнить третий стек общими элементами для первых двух стеков Слияние двух стеков в третий |
|
17 / 10 / 8
Регистрация: 06.12.2019
Сообщений: 19
|
|
| 11.12.2019, 10:06 | |
|
вытолкнуть оба стека в третий . всё у вас реализовано уже.
0
|
|
|
Модератор
|
|
| 11.12.2019, 10:34 | |
|
Viktoriya101, вы явно делаете что-то не то.
Сортированный стек?! Если это стек, то в нём элементы в порядке обратном записи. Если это отсортированный список, то это просто список, а не стек. Это у вас задание такое? Если да, то дайте его полный текст - задание вызывает сомнения. Если же задача иная и это ваш способ её реализации, то, скорее всего, вы выбрали неправильный способ реализации. Добавлено через 7 минут Viktoriya101, по самой реализации Stack. Во первых, тип должен объявляться в пространстве имён, а не вложенным в class Program Во вторых, класса Node используется только внутри Stack. Поэтому он должен быть обыденным закрытым вложенным в Stack. В третьих, Стек - подразумевает односвязный список от последнего записанного элемента к первому. Поэтому Node должен содержать только поле next. Поле previous - излишнее и вносит только путаницу. Стек и Узел лучше сделать обобщёнными типами.
0
|
|
|
0 / 0 / 0
Регистрация: 01.01.2019
Сообщений: 42
|
|
| 11.12.2019, 10:38 [ТС] | |
|
Да вот же, тоже уже понимаю, что скорей всего наломала дров с этим заданием и пошла не по тому пути.. А исправить не получается, уже запуталась. А задание такое: Даны два стека, хранящие отсортированные по убыванию числа. Построить третий стек, содержащий набор упорядоченных по убыванию чисел, полученных из 2-х предыдущих стеков.
Добавлено через 2 минуты Сама то программа работает, создает 2 стека, элементы в них выстраивает отсортированные, но вот при переходе к вопросу об построении 3-го стека из элементов предыдущих стеков - тут у меня уже не получилось.
0
|
|
|
Модератор
|
||||||
| 11.12.2019, 11:03 | ||||||
Сообщение было отмечено Viktoriya101 как решение
Решение
Viktoriya101, вы перемудрили!
Никакой речи о сортировке Стеков в задании нет! Речь идёт только об использовании уже отсортированных при записи в Стек значений. Сейчас скину демо код. Добавлено через 48 секунд Viktoriya101, также в задании нет ничего по реализацию кастомного Стека. Почему не используете дефолтный? Добавлено через 8 минут
1
|
||||||
|
0 / 0 / 0
Регистрация: 01.01.2019
Сообщений: 42
|
|
| 11.12.2019, 11:23 [ТС] | |
|
Спасибо за помощь!
0
|
|
|
Модератор
|
|
| 11.12.2019, 11:39 | |
|
Viktoriya101, вам по заданию можно использовать дефолтный Stack и методы LINQ ?
Добавлено через 8 минут Viktoriya101, и проверьте порядок элементов: по возрастанию или убыванию? Стек возможно переворачивает полученную коллекцию.
0
|
|
|
17 / 10 / 8
Регистрация: 06.12.2019
Сообщений: 19
|
|||||||
| 11.12.2019, 11:46 | |||||||
Сообщение было отмечено Viktoriya101 как решение
Решение
1
|
|||||||
|
0 / 0 / 0
Регистрация: 01.01.2019
Сообщений: 42
|
|
| 11.12.2019, 11:46 [ТС] | |
|
По заданию можно и дефолтный использовать. А еще подскажите пожалуйста, у меня потом будет еще подобное задание, но при этом насколько помню, с использованием указателей на вершину стека. Так вот, есть ли стеки, построенные на указателях? Это с использованием unsafe? Заранее извиняюсь, просто указатели не изучала еще, поэтому могу не правильно сформулировать.
0
|
|
|
Модератор
|
|
| 11.12.2019, 13:26 | |
|
Viktoriya101, здесь скорее всего путаница в терминах.
Имеется ввиду не указатель C#, а ссылка на последний записанный элемент в Стек. По сути это означает реализовать тоже самое, но без использования LINQ. Надо в цикле сравнивать элементы на вершине разных. Записывать больший из них в новый стек. Цикл закончить когда оба стека опустошатся. Здесь ещё возникает одна дилемма. Порядок записи и считывания из стека обратный. То есть элементы записанные в порядке возрастания будут считываться в порядке убывания. Поэтому, для реализации важно какой порядок имеется ввиду при записи или при чтении Возможно придётся делать ещё одну перезапись в стеке.
1
|
|
|
0 / 0 / 0
Регистрация: 01.01.2019
Сообщений: 42
|
|
| 11.12.2019, 13:32 [ТС] | |
|
Спасибо за разъяснения!
0
|
|
|
0 / 0 / 0
Регистрация: 01.01.2019
Сообщений: 42
|
||||||
| 11.12.2019, 19:43 [ТС] | ||||||
|
И можете пожалуйста последний момент подсказать, "Указатели на вершины стеков top и top2" - в данном случае вершины стеков - это stack.Peek() и stack2.Peek()? Просто в процессе "выталкивания" элементов из двух других стеков в третий стек - возникает ошибка, т.е. если top=stack.Peek() и top2=stack2.Peek(), то стек3 заполняется не по убыванию, а просто сначала выводятся числа с 1-го стека, потом со 2-го..
0
|
||||||
|
Модератор
|
||||||
| 12.12.2019, 11:39 | ||||||
Сообщение было отмечено Viktoriya101 как решение
Решение
Viktoriya101, я в поездке и без компа.
На форум захожу со смарта Разбирать причину ошибок в чужом коде - не могу. Вот мой вариант. Проверьте. Пишу со смарта - могут быть ошибки.
1
|
||||||
| 12.12.2019, 11:39 | |
|
Помогаю со студенческими работами здесь
14
Создать стек из двух других стеков
Из двух стеков с целыми числами создать новый стек из элементов первого стека, которых нет во втором
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|