Вниз
Скачать: CL | DM;

Поиск в стеке   Найти похожие ветки 

← →
Dublicator   (2006-03-12 21:47) [0]

Люди!!! Помогите, пожалуйста, решить задачу:
Создать стек из случайных целых чисел и определить, сколько эле-
ментов стека, начиная с вершины, находится до элемента с максимальным
значением.
Нужен сам поиск


← →
Ihor Osov'yak ©   (2006-03-12 21:58) [1]

хм..
Что такое "создать" в контексте Вашего постинга?.
Далее. Решение зависит от того, можно ли решать задачу в процессе заполнения стека, или нужно решать, когда стек уже заполнен. Но в любом случае, искомое количество будет равно или однозначно определятся от индекса (или указателя - смотря какую терминологию используем) максимального элемента.
Относительно поиска. Он собственно нужен только для случая, если ищем решение уже для заполненого стека. Но даже в таком случае - поиск - не более чем последовательный перебор всех элементов - так как стек в общем случае есть неупорядочен.

зы. А строчек паскалевского кода на все это дело - ну 5-10, и  то треть из них декларации..


← →
Dublicator   (2006-03-12 22:03) [2]

Стек уже заполнен. Вот мне и нужно найти максимальное значение-это главное.


← →
Desdechado ©   (2006-03-12 22:46) [3]

чем стек в этом случае отличается от массива? только способом хранения
ну максимальный элемент массива найти ведь элементарно


← →
Anatoly Podgoretsky ©   (2006-03-12 23:10) [4]

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


← →
Ihor Osov'yak ©   (2006-03-12 23:57) [5]

Ангатолий, Вы, как всегда, правы. Прошу извинение за не совсем корректный постинг..


← →
Джо ©   (2006-03-13 00:06) [6]

> [4] Anatoly Podgoretsky ©   (12.03.06 23:10)
> Нормальный стек не позволяет ни получить количество элементов,
> ни тем более делать в нем поиск.

Ну, не сказано ведь, что стек, в результате поиска в нем не должен изменить свое состояние. Вполне, ИМХО, ортодоксален стек, который поддерживает определение валидности затребования очередного элемента. То есть, подсчитать кол-во элементов, бывшее в стеке, просто — поочередно вынимать из стека все значения до тех пор, пока из него есть, что вынимать. Соответственно, увеличивать счетчик... Ну, а запихнуть извлеченное в стек обратно также не проблема (если есть в этом нужда) :-)


← →
Anatoly Podgoretsky ©   (2006-03-13 00:29) [7]

Джо ©   (13.03.06 00:06) [6]
И тоже с поиском, перегонять в массив :-)


← →
Anatoly Podgoretsky ©   (2006-03-13 00:34) [8]

Dublicator   (12.03.06 21:47)  
Как предложил Джо решать задачу с помошью двух TStack


← →
Anatoly Podgoretsky ©   (2006-03-13 00:36) [9]

Джо ©   (13.03.06 00:06) [6]
Если не брать в расчет конкретную реализацию стека, то общего решения нет, поскольку нет количество элементов.
Стандартный стек поддерживает только три операции - Peek, Pop и Push


← →
Petr V. Abramov ©   (2006-03-13 01:06) [10]

> Ihor Osov"yak ©   (12.03.06 21:58) [1]
зы. А строчек паскалевского кода на все это дело - ну 5-10, и  то треть из них декларации..
 И вам сложно было их написать? вместо 8 строчек поста? ;))

> Anatoly Podgoretsky ©   (13.03.06 00:36) [9]
 А это в предвдущем семестре преподавали, так не честно ;))

> Dublicator
 Скажите, ччто конкретно затрудняет в задаче? И Вам либо с ссылок дадут, либо объяснить попытаюся. А просто код дать - никто не даст, сразу ТЗ потребуют, еще чего-нить...


← →
Ihor Osov'yak ©   (2006-03-13 01:49) [11]

>  И вам сложно было их написать? вместо 8 строчек поста? ;))

Не, но не считал целесообразным.
Хотя бы потому, что мне не понятен смысл слова "создать стек" в контексте лидер-постинга, а также см. постинг [4] - то, что вследствии некоторой расслабленности я изначально не собразил...


← →
Defunct ©   (2006-03-13 01:55) [12]

С точки зрения системщика, что стек, что не стек, в одно - адресуемая память. Поэтому берем указатель на вершину стека и сползаем вниз последовательно читая слова одинакового размера, одновременно с этим подсчитываем число прочитанных элементнов. Если очередной элемент будет больше предыдущего сохраненного максимального элемента, то сохраняем текущий элемент как максимальный и сохраняем его номер. Когда упремся в дно стека - поиск прекращаем, а результатом будет сохраненный номер максимального элемента - 1.


← →
Dublicator   (2006-03-13 15:37) [13]

Все, спасибо. Я ее уже решил.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.036 c
2-1141732958
pupapumQ
2006-03-07 15:02
2006.03.26
Программу в пуск


3-1138718238
Mac_
2006-01-31 17:37
2006.03.26
Как сохранить результат запроса в dbf формате ?


15-1141643051
Kaban
2006-03-06 14:04
2006.03.26
Пиксел


15-1141041655
Test Your Soft Team
2006-02-27 15:00
2006.03.26
Акция "Оцени свой софт"


2-1142101123
jenya_rus
2006-03-11 21:18
2006.03.26
Извлечь имена файлов из папки??? :0




   Наверх