[Data Structure] C++로 나만의 스택 구현하기

세동네·2022년 2월 28일
0
post-thumbnail
post-custom-banner

바로 직전에는 큐를 만들어 보았다. 내친김에 스택도 만들어 보았다. 확실히 단순하고 구현하기 쉬웠다.

#pragma once
#include "Node.h"

template <typename T>
class Stack {
	Node<T>* topNode;

	int stack_size;

public:
	Stack() {
		topNode = new Node<T>();

		stack_size = 0;
	}

	bool empty() {
		return stack_size == 0;
	}

	int size() {
		return stack_size;
	}

	void push(T data) {
		Node<T>* newNode = new Node<T>(data);

		if (empty()) {
			topNode->next = newNode;
		}
		else {
			newNode->next = topNode->next;
			topNode->next = newNode;
		}
		stack_size++;
	}

	T pop() {
		if (empty()) {
			return NULL;
		}
		Node<T>* returnNode = topNode->next;
		topNode->next = topNode->next->next;

		T return_value = returnNode->data;
		delete(returnNode);

		return return_value;
	}

	T top() {
		return topNode->next->data;
	}
};
post-custom-banner

0개의 댓글