![]() |
Класс стек и очередь на с++
Помогите, пожалуйста в написании программы на с++, в которой надо написать класс стек с следующимий возможностями: добавить элемент в конец стека; извлечь последний элемент стека ; проверка на то,что стек не пустой! Заранее спасибо!
|
Помогите пожалуйста написать класс стек на с++, реализующий следующие возможности: добавить элемент в конец стека, извлечь последний элемент стека, проверка на то ,что стек не пуст.
|
Контрольная в школе? :)
Код:
class cStack Метод Push создаёт в куче новый объект для указателя fItem, адрес старого объекта помещается в поле Prev. Метот Pop извлекает из поля Prev адрес предыдущего объекта и удаляет текущий. Метод IsEmpty проверяет, не равен ли указатель fItem нулевому адресу |
El Scorpio, спасибо, не очень помогло, по крайней мере мне =) Пока разбиралась написала нечто следующее:
class AStack { public: struct sItem { string Value; sItem *Prev; }; sItem *fItem; // konstruktor AStack() { fItem = new sItem; fItem = NULL; } // destruktor ~AStack() {}; // dobavlenie void Push(string v) { sItem *tmp = new sItem; tmp->Value = v; if(!fItem) fItem = tmp; else { tmp->Prev = fItem; fItem = tmp; } } // udalenie AStack Pop() { sItem *s = new sItem; if (fItem == NULL) {cout<<"Error: stek pust" << endl;} else { cout << fItem->Value.c_str() << endl; fItem = fItem->Prev; } AStack P; P.fItem = fItem; return P; }; } Функцию определения пустоты стека не писала - в задании такого не было (в моем) =) |
эээ
Цитата:
Цитата:
Остальных жуков просто лень перечислять |
Я бы сделал через вектор (потом бы долго спорил с преподом что использовать свободную память в задании не было):
Код:
00 <-- Указатель на начало bptr (begin)
Тов. программисты форума, у меня в браузере глючит перенос строчки, когда заполнишь окошко ввода ответа (удаляет перенос строки или проворачивает прокрутку обратно), IE8 |
Специализированный деструктор я не писала, а увиденное вами - привычка обозначать что таковой имеется! С указателем ошиблась - в конечной версии программы такого бага нет. Там необходимо обнулять указатель на следующий элемент.
PS: если мое конструктивное не подходит под мерки функциональной программы предлагаю вам написать свою, а не цитировать всем известный учебник =) |
Nikilania, повторяю мысль - объект, в тексте которого содержится много new и ни одного delete выглядит странно
Хотя бы деструктор должен иметь код удаления объектов Код:
AStack (void) |
Nikilania, я так понимаю про учебник - это в мой огород камень, по этому поводу хочу пояснить:
Вообще есть такие варианты реализации контейнеров:
|
Время: 15:55. |
Время: 15:55.
© OSzone.net 2001-