Вопрос №19626
 
 
 
 
 

Как написать программу со стеками С++?

Альонка · около 7 лет назад
 

Потрібно організувати програмний стек розміром 1кБайт;-це 1й пункт а 2й
- розробити клас для роботи із вказаним стеком. Для цього необхідно реалізувати :
- функцію запису даних в стек;
- функцію зчитування з стеку;
- функцію контролю переповнення стеку.

ось шо я напридумувала, поможіть доробити

#include <stdio>
#include <conio>

class CStack
{
int *pRead;
int *pWrite;
int size;
int count;
public:
CStack();
int PushStack( int data );
int PopStack();
int GetStackCount();
~CStack();
};

CStack::CStack()
{
size = 64;
count = 0;
pWrite = new int[size];
pRead = pWrite;
}

int CStack::PushStack( int data )
{
if ( (count + 1) > size ) return 0;
else
{
int *pTemp;
pTemp = pWrite + count + 1;
for( int i = (count + 1); i > 0; i-- )
{
*pTemp = *(pTemp - 1);
pTemp --;
}
count ++;
*pWrite = data;
}
return 1;
}

int CStack::GetStackCount()
{
return count;
}

int CStack::PopStack()
{
int *p;
int data;
data = *pRead;
count --;
p = pRead;
for( int i = 0; i < count; i++ )
{
*p = *( p + 1 );
p ++;
}
return data;
}

CStack::~CStack()
{
delete pWrite;
}

int main()
{
int count;
CStack stack;
int A[10];
printf("Vedid elementu masyvy\nKilkist elementiv 10\n");
for (int i = 0; i < 10; i++)
{
scanf("%i", &A[i]);
}

for( int i = 0; i < ( sizeof( A )/sizeof(int) ); i++ )
{
stack.PushStack( A[i] );
}

count = stack.GetStackCount();

if( count )
{
for( int i = 0; i < count; i++ )
{
printf( "%d - %d\n", (i + 1), stack.PopStack() );
}
}
getch();
return 0;
}

Хороший вопрос Ф топку
5
1
Нет ответов
 
 
Ссылка на этот вопрос
 
Поискать ответ на вопрос: ответы@mail.ru, otvety@google.ru, Яндекс.Ответы
 
Читать новые вопросы в: LiveJournal, Livinternet, Google Reader
 
Этот вопрос посмотрели 191 раз, в среднем 2 просмотра в месяц (0.07)
 
 
 
 
 
 
Адрес друга:
 
 
 
 
 
 
 
 
 
 
 

© vorum.ru — вопросы и ответы, 2006–2016
Пишите нам на in@vorum.ru

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

Цифры не для всех: 73

 
 
× Нравится наш сайт?
Нажмите кнопку «Мне нравится» (Like), чтобы присоединиться к нам на Facebook