Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > Стек, Связный Список и Очередь


Автор: heyGebz 25.5.2015, 01:25
1.Используя структуру "стек", напишите программу посика палиндромов в произвольном текстовом файле.
Палиндром - слово, читающееся одинаково в прямом и обратном порядке.
Исключите из рузультата одно- и двух- буквенные палиндромы.

2.Используя структуру "однонаправленный свзяный список", напишите программу сортировки массива
целых чисел.

3.Используя структуру "очередь", напишите программу поразрядной сортировки данных произвольной
разрядности.

поправка, язык C++

Автор: rudolfninja 25.5.2015, 10:45
Здравствуйте. Какой язык?

Автор: heyGebz 25.5.2015, 13:42
Цитата(rudolfninja @ 25.5.2015,  10:45)
Здравствуйте. Какой язык?

черт, не заметил , что не написал,язык C++

Автор: rudolfninja 25.5.2015, 13:44
Цитата(heyGebz @  25.5.2015,  01:25 Найти цитируемый пост)
1.Используя структуру "стек", напишите программу посика палиндромов в произвольном текстовом файле.
Палиндром - слово, читающееся одинаково в прямом и обратном порядке.
Исключите из рузультата одно- и двух- буквенные палиндромы.


Алгоритм такой: 
1) Пишите класс стек в его классической реализации (методы push и pop). В стеке будут храниться символы (т.е. элементы типа char).  Следовтельно, для вашей реализации будут методы void push(char symbol); и char pop();
2) Запоминаете слово, которое надо "определить на полиндром"
3) Помещаете это слово в стек (посимвольно)
4) Выталкиваете это слово из стека в буфер какой-ниубудь.
5) Сравниваете полученный буфер со словом, полученным в (2).
Думаю, вам не надо делать динамически расширяемый стек, достаточно будет стека с фиксированным числом элементов.


Цитата(heyGebz @  25.5.2015,  01:25 Найти цитируемый пост)
2.Используя структуру "однонаправленный свзяный список", напишите программу сортировки массива целых чисел.


Алгоритм:
1) Пишите односвязный список в его классической реализации (метод для вставки и извлечения элемента, указатель на начало и, можно, на конец списка). В списке будут храниться элменты типа int. 
2) Сортируете список любым из алгоритмов. Вот http://forum.vingrad.ru/faq/topic-200441.html есть реализация сортировки пузырьком на различных языках.
Вероятнее всего, вам надо менять не данные в узлах списка, а связи между ними, хотя в задании ничего про это не написано. Поэтому придется чуть чуть подумать, как поменять элементы местами, чтоб сохранить целостность списка.


Хотя, не уверен по поводу второго. Мне кажется решение должно быть примерно таким же как и в первом: просто поместить элементы в список. В случае со стеком вся прелест заключатся в том, что не надо несколько раз бегать по массиву, а просто поместил элемнты в стек и достал и оттуда. Аналогичная реализаиця, наверное, должна быть и со списком, вот только не могу придумать что-то =(

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)