Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Stack.cpp : Defines the entry point for the console application.
- //
- #include "stdafx.h"
- #include "Stack.h"
- #include <iostream>
- Stack::Stack()
- {
- root = nullptr;
- }
- Stack::~Stack()
- {
- }
- void Stack::push(StackElement* element) {
- element->prev = root;
- root = element;
- ++size;
- }
- StackElement* Stack::pop() {
- if (root == nullptr)
- return nullptr;
- StackElement* oldRoot = root;
- root = root->prev;
- --size;
- return oldRoot;
- }
- bool Stack::contains(int key) {
- StackElement* item = root;
- while (item != nullptr) {
- if (item->getKey() == key)
- return true;
- item = item->prev;
- }
- return false;
- }
- int Stack::findPlace(int key) {
- int place = size - 1;
- StackElement* item = root;
- while (item != nullptr) {
- if (item->getKey() == key)
- return place;
- --place;
- item = item->prev;
- }
- return -1;
- }
- void Stack::clear() {
- StackElement* item = root;
- while (item != nullptr) {
- StackElement* oldItem = item;
- item = item->prev;
- delete item;
- }
- size = 0;
- root = nullptr;
- }
- Stack* Stack::revert() {
- return nullptr;
- }
- int Stack::getSize() {
- return size;
- }
- void Stack::print() {
- std::cout << "Stack = [";
- StackElement* item = root;
- for (int i = size; i >= 0; --i) {
- std::cout << item->getKey();
- if (!i)
- std::cout << ",";
- item = item->prev;
- }
- std::cout << "] size = " << size;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement