![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Merlin |
![]()
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 114 Пол: Мужской Реальное имя: Ден Репутация: ![]() ![]() ![]() |
Задание :
Создать два стека по 5 элементов. Слить их в один стек. Результирующий стек вывести на экран. Создание стека я сделал. Подскажите как слить 2 стека в один ? ![]() program STACK_Pr; Сообщение отредактировано: volvo - 3.11.2006 22:03 -------------------- |
Merlin |
![]()
Сообщение
#2
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 114 Пол: Мужской Реальное имя: Ден Репутация: ![]() ![]() ![]() |
![]() -------------------- |
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
Цитата(Merlin @ 16.05.2006 23:58) Создать два стека по 5 элементов. Слить их в один стек. Просто слить? Без сортировки или еще каких приколов? Тогда так: Procedure ConcatStack(const s1, s2: PStack); Только вот у тебя проблема - ты 2 разных стека сделать не можешь !!! Потому, что работаешь через глобальные переменные ![]() ![]() |
Merlin |
![]()
Сообщение
#4
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 114 Пол: Мужской Реальное имя: Ден Репутация: ![]() ![]() ![]() |
Volvo спасибо
Да, мне нужно просто соединить 2 стека. А что нужно поменять в программе ? -------------------- |
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
Перестать использовать глобальные переменные. Ведь параметры процедур/функций не просто так придумали, правда? Через них ты и должен с процедурами общаться (это - правильный стиль программирования. Иначе побочных эффектов не избежать...)
program STACK_Pr; Вот такого типа что-то... |
Merlin |
![]()
Сообщение
#6
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 114 Пол: Мужской Реальное имя: Ден Репутация: ![]() ![]() ![]() |
Спасибо
![]() -------------------- |
Merlin |
![]()
Сообщение
#7
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 114 Пол: Мужской Реальное имя: Ден Репутация: ![]() ![]() ![]() |
Цитата Procedure ConcatStack(const s1, s2: PStack); var p: PStack; begin p := s1; while p ^.next <> nil do p := p^.next; p^.next := s2; { К хвосту первого стека прицепить второй } end; Что тут надо изменить, чтобы 2 стек добавлялся не в конец первого стека, а в начало ? Ведь в стеках вроде можно работать только с верх. стека. -------------------- |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Так:
Procedure ConcatStack(var s1, s2: PStack); ? (учти, это чревато утечками памяти: элементы стека S2 не удаляются... ) |
![]() ![]() |
![]() |
Текстовая версия | 31.07.2025 22:55 |