C++에서 STL 라이브러리가 제공되지만,
알고리즘 기초부터 다시 공부하면서 한번 작성 해 봤습니다.
Stack의 생성자, isFull, isEmpty, pop, push와 같은 기본적인 기능을 구현했습니다.
class Stack {
private:
int top, MaxSize;
char *stack;
public:
Stack(int size);
bool isFull(), isEmpty();
char pop();
void push(char element);
void print();
};
Stack::Stack(int size){
MaxSize = size;
stack=new char[MaxSize];
top=-1;
}
bool Stack::isFull(){
if(top==MaxSize-1) return 1;
else return 0;
}
bool Stack::isEmpty(){
if(top==-1) return 1;
else return 0;
}
char Stack::pop(){
if(isEmpty()==1) cout << "Empty!\n";
else return stack[top--];
}
void Stack::push(char element){
if(isFull()==1) cout << "Full!\n";
else stack[++top]=element;
}
void Stack::print(){
for(int i=0;i<top+1;++i)
cout << stack[i] << endl;
}
int main() {
Stack stack(5);
stack.push('a');
stack.push('b');
stack.push('c');
stack.push('d');
stack.push('e');
stack.push('f');
stack.pop();
stack.push('f');
stack.print();
return 0;
}
기초적인 자료구조부터 다시 공부하니 재미있습니다:D
잘못된 내용이 있다면 언제든지 댓글이나 메일로 알려주시면 감사하겠습니다.
이 포스팅이 도움이 되었다면 공감 부탁드립니다.
궁금한 점은 언제든지 댓글 남겨주시면 답변해드리겠습니다:D
'major' 카테고리의 다른 글
PCL Iterative Closest Point 튜토리얼 분석 (5) | 2020.03.10 |
---|---|
CMake로 Boost 라이브러리 링킹하기 (0) | 2020.03.08 |
OBJ to LAS 파일 변환 - mesh sampling (0) | 2020.03.04 |
맥(macOS) cloudcompare 설치 및 사용법 (0) | 2020.03.04 |
LAS to TXT 파일 변환 (1) | 2020.03.03 |