본문 바로가기

Stack4

[Stacks]13. 후위 표기식 연산 구현 (Stack 응용) 목차 1. 중위 표기법, 후위 표기법 2. 후위 표기식 연산 방법 3. class Cal_post_fix 4. 테스트 1. 중위 표기법, 후위 표기법 1) 중위 표기법(Infix Notation) - 연산자를 피연산자의 가운데 표기하는 방법을 말한다. ex) A+B, A*B-C/D, A-B*C+D 2) 후위 표기법(Postfix Notation) - 연산자를 피연산자 뒤에 표기하는 방법을 말한다. ex) AB+, AB*CD/-, ABC*-D+ 2. 후위 표기식 연산 방법 후위 표기식을 입력받아 연산하는 방법은 다음의 과정과 같다. 1. 피연산자를 만나면 스택에 push한다. 2. 연산자를 만나면 필요한 만큼의 피연산자를 스택에서 pop하여 연산하고, 연산 결과를 다시 스택에 push한다. 3. 수식이 끝.. 2021. 2. 20.
[Stacks]12. Linked list-based Stack(연결 리스트 기반 스택) 구현 목차 1. Linked list-based Stack(연결 리스트 기반 스택) 구현 2. class Node, S_linked_list 3. class Stack_linked 4. 테스트 1. Linked list-based Stack(연결 리스트 기반 스택) 구현 Linked list-based Stack을 구현할 경우, 1. Singly linked list를 구현한다. 2. append, pop은 모드 singly linked list의 head에서 이루어진다. 3. 이를 기반으로 스택 알고리즘을 구현한다. Singly linked list를 활용하여 스택 알고리즘을 구현할 경우, head에서 append와 pop을 진행하야한다는 사실만 주의하면 됩니다. 지난 Linked list 게시물에서도 언급.. 2021. 2. 20.
[Stacks]11. Array-based Stack(배열 기반 스택) 구현 목차 1. Array-based Stack(배열 기반 스택) 구현 2. 실제 구현 3. size() 4. empty() 5. top() 6. push() 7. pop() 8. 테스트 1. Array-based Stack(배열 기반 스택) 구현 Array를 기반으로 Stack ADT 알고리즘을 구현할 경우 1. 임의의 크기의 array를 선언한다 2. 해당 array의 0번째 부터 들어오는 element를 저장한다. 3. 현재 위치를 t로 저장하며, 해당 위치에서 element를 호출되는 기능에 따라 추가하고, 삭제한다. Array를 기반으로 Stack ADT 알고리즘을 구현할 경우, 가장 큰 문제점이 바로 Array의 최대값에 다다랐을 경우입니다. 이와 같은 경우를 ADT에서 설명하지는 않지만, 구현하고.. 2021. 2. 19.
[Stacks]10. Stack ADT(스택) 목차 1. Abstract Data Types(ADTs, 추상 자료형) 2. Stack ADT(스택) 3. Applications of Stack(활용하는 곳) 4. Performance and Limitations 1. Abstract Data Types(ADTs, 추상 자료형) Abstract Data Types(ADTs, 추상 자료형)은 특정 자료구조에 명세된 내용을 의미합니다. 즉, 각각의 ADT는 1. 해당 ADT가 어떤 자료를 지니고 있는지 2. 해당 ADT가 어떤 기능을 취할 수 있는지(탐색, 삽입, 삭제 등...) 이 두가지 해당사항(가이드라인)을 제시해 주는 것을 말합니다. 2. Stack ADT(스택) 위에서 언급한 ADT의 한 종류인 Stack ADT(스택)은 여러 특징들을 가집니다... 2021. 2. 19.