일지
자료구조...34
niamdank
2020. 11. 18. 20:48
스택 구현 준비
스택은 선형 리스트와 연결 리스트에서 모두 구현할 수 있는 기본적인 자료구조 중 하나이다.
구현에 필요한 메서드 및 속성은 다음과 같다.
- 생성자
- Stack() 비어있고 기본 초기 용량을 가지는 인스턴스 생성
- Stack(Stack&) 다른 Stack 데이터로 인스턴스 생성
- Stack(int) 비어있고 지정한 초기 용량을 가지는 인스턴스 생성
- 속성
- Count Stack에 포함된 데이터의 개수
- 메서드
- Push(data) Stack의 맨 위에 데이터를 저장
- Peek() Stack의 맨 위의 데이터를 제거하지 않고 반환
- Pop() Stack의 맨 위의 데이터를 제거하고 반환
- Clear() 저장되어 있는 모든 데이터 삭제
- Contains(data) 데이터가 저장되어 있는지 여부 확인
선형 리스트 스택 구현
ArrayList를 이용하여 Stack을 구현한다.
ArrayListStack.h
#pragma once
#include <xutility>
#include <iostream>
class ArrayListStack
{
public:
#pragma region 생성자
ArrayListStack(int capacity = 10);
ArrayListStack(const ArrayListStack& other);
#pragma endregion
#pragma region 속성
const size_t Count() { return m_count; }
#pragma endregion
#pragma region 메서드
void Push(int value);
int Peek();
int Pop();
void Clear();
bool Contains(int value);
#pragma endregion
private:
#pragma region 변수
size_t m_count;
int* m_items;
#pragma endregion
};