Язык программирования C++. Вводный курс


           

Прежде чем протестировать наш стек







bool iStack::pop( int &top_va1ue ) {
    if ( empty() )
        return false;
    top_value = _stack[ --_top ];
    cout << "iStack::pop(): " << top_value << endl;
    return true;
}
bool iStack::push( int value    ) {
    cout << "iStack::push( "    << value << " )\n";
    if ( full() )
        return false;
    _stack[ _top++ ] = value;
    return true;

}
Прежде чем протестировать наш стек на примере, добавим функцию display(), которая позволит напечатать его содержимое. Для пустого стека она выведет:
 ( 0 )
Для стека из четырех элементов – 0, 1, 2 и 3 – результатом функции display()
будет:
( 4 )( bot: 0 1 2 3 :top )
Вот реализация функции display():





void iStack::display() {
    cout << "( " << size() << " )( bot: ";
    for ( int ix = 0; ix < _top; ++ix )
              cout << _stack[ ix ] <<  " ";
    cout << " :top )\n";

}
А вот небольшая программа для проверки нашего стека. Цикл for выполняется 50 раз. Четное значение (2, 4, 6, 8 и т.д.) помещается в стек. На каждой итерации, кратной 5 (5, 10, 15...), распечатывается текущее содержимое стека. На итерациях, кратных 10 (10, 20, 30...), из стека извлекаются два элемента и его содержимое распечатывается еще раз.





#inc1ude <iostream>
#inc1ude "iStack.h"
int main() {
    iStack stack( 32 ) ;
    stack.display();
    for ( int ix = 1; ix < 51; ++ix )
    {
        if ( ix%2 == 0 )
            stack.push( ix );
        if ( ix%5 == 0 )
            stack.display();
        if ( ix%10 == 0 ) {
            int dummy;
            stack.pop( dummy ); stack.pop( dummy );
            stack.display();
    }

}
Вот результат работы программы:
( 0 )( bot: :top )
iStack push( 2 )
iStack push( 4 )
( 2 )( bot: 2 4 :top )

Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий