자료구조 개념, 종류
자료구조란? 일련의 자료들을 조직하고 구조화 하는 것 ex) 배열, 연결리스트, 트리, ... 성능 분석 공간 복잡도 - 필요한 공간의 크기 시간 복잡도 - 필요한 실행문의 실행 횟수 1. 배열 (Array) 인��
dyeoma.tistory.com
Stack class 선언
Private:
T *stack; // stack 원소 저장 배열
int top; // top 원소 위치
int capacity; // stack 배열 크기
Template <class T>
Stack<T>::Stack (int stackCapacity): capacity(stackCapacity){ // 생성자
if(capacity < 1) throw "Stack Capacity must be > 0";
stack = newe T[capacity];
top = -1;
}
초기 top = -1
empty 상태 top = -1
full 상태 top = capacity-1
Stack 삽입 - O(1) 소요
template <class T>
void Stack<T>::Push(const T& x){
if(top == capacity-1){ // 배열 크기 2배 확장
ChangeSizeID(stack, capacity, 2*capacity);
capacity *=2;
}
stack[++top]=x;
}
Stack 삭제 - O(1) 소요
template <class T>
T* Stack<T>::Pop(T& x){
if(top==-1) // empty stack
return 0; // null 반환
x = stack[top--]; // x = 삭제되는 값
return &x; // x 주소 반환
}
'알고리즘 > C++' 카테고리의 다른 글
5. 연결 리스트 (Linked List) (0) | 2020.07.21 |
---|---|
4. 큐 (Queue) (0) | 2020.07.21 |
Container Class와 Template (0) | 2020.07.13 |
2. 배열 (Array) (0) | 2020.07.13 |
1. 기본 개념 (0) | 2020.07.12 |