Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.26;
Скачать: 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 вся ветка

Текущий архив: 2006.03.26;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.033 c
3-1138952777
Igor_
2006-02-03 10:46
2006.03.26
Транзакции MSSQL - работа через BDE


1-1140507304
apl
2006-02-21 10:35
2006.03.26
Про ферймы


15-1141471539
DenMaster
2006-03-04 14:25
2006.03.26
Помогите найти программу:


9-1126253501
RzCoDer
2005-09-09 12:11
2006.03.26
ладшафт в OpenGL


2-1141713227
softmaster
2006-03-07 09:33
2006.03.26
Работа с OUTLOOK