Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Tota_Luke
-3 / 0 / 0
Регистрация: 26.04.2011
Сообщений: 16
#1

Работа со стеками - C++

19.05.2011, 23:20. Просмотров 801. Ответов 6
Метки нет (Все метки)

Разработать программу, определяющую симметричность произвольного текста любой длины. Текст всегда должен оканчиваться точкой. Эту задачу рекомендуется решать с помощью двух стеков. В первый стек следует поместить весь текст, затем во второй стек перенести его половину так, чтобы последний символ текста находился на дне стека. Далее путем поэлементного сравнения этих стеков получить ответ на вопрос о симметричности текста.
Ребят, есть у кого какие идеи?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2011, 23:20     Работа со стеками
Посмотрите здесь:

Работа со стеками - C++
С чем связанны данные ошибки. Компилятор вижак 10 экспресс выпуск. #include <fstream> using namespace std; #include "stack.cpp"//не...

Работа со стеками - C++
Люди подскажите как написать функцию для вывода на экран заданного элемента стека к примеру 3 или 5)

Работа со стеками на Dev C++ - C++
задание такое: удалить из списка все вхождения элемента , имеющего заданное значение. Ошибку выводит , что не объявлен random . Помогите...

Работа со стеками и удаление максимального - C++
Нужно найти самые большой элемент и удалить его из ммассива Добавлено через 10 секунд ...

Работа со стеками, объяснение кода программы - C++
Есть код программы (вырванный из целой проги кусок). В нем используются стеки. Помогите, пожалуйста, построчно (максимально подробно)...

Задача со стеками в Си++ - C++
Нужно создать стек, добавить в него элементы и удалить каждый второй элемент стека.

операции со стеками - C++
Я нашел интересный код но так и не пойму как выполняется в обшем путаница! Поставил комменты,можете исправить комменты если неверно...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
19.05.2011, 23:58     Работа со стеками #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <string>
#include <stack>
 
int main ()
{
    std::string main_string = "qwerewq";
 
    std::stack < char > char_stack_first;
    std::stack < char > char_stack_second;
 
    for (int index = 0; index < main_string.length() / 2; index++)
    {
        char_stack_first.push ( main_string [index] );
        char_stack_second.push( main_string [main_string.length() - index - 1] );
    }
 
    bool Checker = true;
    while ( ( !char_stack_first.empty() ) && ( Checker ) )
    {
        Checker = ( char_stack_first.top() == char_stack_second.top() );
        char_stack_first.pop();
        char_stack_second.pop();
    }
 
    std::cout << Checker << std::endl;
 
    std::cin.get();
    return 0;
}
Добавлено через 8 минут
Насчет точки: будем считать, что я ее заранее удалил, дабы просто работать с предложением...

Добавлено через 12 минут
Цитата Сообщение от Tota_Luke Посмотреть сообщение
Эту задачу рекомендуется решать с помощью двух стеков. В первый стек следует поместить весь текст, затем во второй стек перенести его половину так, чтобы последний символ текста находился на дне стека.
Нахожу здесь лишним заполнять один из стеков всем текстом, потому что одна из половин будет просто лишней. Достаточно заполнять стек с двух концов до середины, а потом поэлементно вытаскивать из двух контейнеров первые символы и их сравнивать...
kravam
быдлокодер
1693 / 880 / 44
Регистрация: 04.06.2008
Сообщений: 5,439
20.05.2011, 01:03     Работа со стеками #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <string>
#include <stack>
#include <vector>
 
int main ()
{
      std::string main_string = "qwerewq";
      std::stack<char,std::vector<char> > first(std::vector<char> (main_string.begin(),main_string.end ()));
      std::stack < char > second;
      int temp= first.size()/2;
      for (int index = 0; index < temp; index++)      {
        second.push ( first.top() );
        first.pop();
      }
 
      bool Checker = true;
      while ( ( !second.empty() ) && ( Checker ) )
      {
        Checker = (first.top() == second.top() );
        first.pop();
        second.pop();
      }
 
     std::cout << Checker << std::endl;
 
     std::cin.get();
     return 0;
}
Напильнег
480 / 120 / 10
Регистрация: 30.09.2010
Сообщений: 473
20.05.2011, 01:30     Работа со стеками #4
Цитата Сообщение от Mиxaил Посмотреть сообщение
Нахожу здесь лишним заполнять один из стеков всем текстом, потому что одна из половин будет просто лишней. Достаточно заполнять стек с двух концов до середины, а потом поэлементно вытаскивать из двух контейнеров первые символы и их сравнивать...
А я нахожу, что эту задачу надо решать исходя из того, что к тексту возможен только последовательный доступ, и длина его заранее не известна.

Добавлено через 5 минут
Мдя, оба приведенных "решения" демонстрируют только известный принцип - лишние знания дураку только вредят
Tota_Luke
-3 / 0 / 0
Регистрация: 26.04.2011
Сообщений: 16
20.05.2011, 11:04  [ТС]     Работа со стеками #5
Спс ребят, можете добавить коменты к строкам в ваших кодах, ато многое для меня не понятно...
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
20.05.2011, 11:13     Работа со стеками #6
Цитата Сообщение от Tota_Luke
В первый стек следует поместить весь текст, затем во второй стек перенести его половину так, чтобы последний символ текста находился на дне стека.
вместо первого стека записать в массив, поставить указатели на начало и конец массива
двигать их к центру текста и сравнивать значения
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2011, 13:15     Работа со стеками
Еще ссылки по теме:

Создание библиотеки для работы со стеками - C++
Есть задание &quot;разработать библиотеку для работы со структурой данных типа стек&quot; . Я создал 3 файла: первый &quot;stek.cpp&quot;, в котором содержится...

Работа со стеками. Ошибка "Ожидался тип" - PascalABC.NET
Доброго времени суток всем. Решала задачку на стеки. К моему удивлению паскаль начал ругаться на первой же строчке и со словами &quot;Ожидался...

Задача со стеками - Delphi
Ввести с клавиатуры символы, формируя из них стек Удалить каждый второй элемент стека как реализовать её?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
kravam
быдлокодер
1693 / 880 / 44
Регистрация: 04.06.2008
Сообщений: 5,439
20.05.2011, 13:15     Работа со стеками #7
C++
1
2
3
4
5
6
7
8
9
      //инициализируем стек строкой main_string и объявляем второйпустой стек
      std::stack<char,std::vector<char> > first(std::vector<char> (main_string.begin(),main_string.end ()));
      //....  
      //Запихиваем во второй стек значения из первого, как и надо по заданию. Первый тем самым уменьшается
      int temp= first.size()/2;
      //....  
      //сравниваем стеки поэлементно   
      bool Checker = true;
      //....
Yandex
Объявления
20.05.2011, 13:15     Работа со стеками
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru