728x90
반응형
Stack
Stack은 자료를 차례대로 넣고(push)꺼낼 때는 가장 마지막에 쌓여진 자료부터 빼낸다.
배열에서의 array.psuch()와 array.pop() 메소드와 동일하다. -> LIFO(Last In Last Out)
- 필요 변수 및 메소드
- someInstance (object) : 구현할 stack method를 담을 객체
- storage (object) : 배열을 흉내내기 위한 객체
- count (number) : 마지막 Index 를 return 할 변수
- push() (method ): 데이터를 넣음
- pop() (method) : 데이터를 뺌
- size() (method) : 현재 존재하는 자료의 갯수를 return 함
Sudo Code
//functional 의 방법으로 작성
let Stack = funciton(){
let someInstance = new Object();
let sotage = new Obect();
let count = 0;
//자료를 넣는 method
someInstance.push = fucntion(vlaue){//value : 받을 자료
//overflow를 고려해야함
//1.overflow의 상황이인가?(count의 판단)
//1-1. 'overflow' message 를 출력하며 종료
//2.overflow 상황이 아닌가?
//2-1. storage에 값을 넣어준다.
//2-2. count를 증가시킴
}
//자료를 빼는 method
someInstance.pop = funciton(){
//underflow를 고려해야함
//1. underflow의 상황인가?
//1-1. 'underflow' message를 출력하며 종료
//2. underflow의 상황이 아닌가?
//2-1. storage의 마지막 값을 뺌
//2-2. count를 감소시킴
}
someinstance.size = funciton(){
// count를 반환함
}
}
Queue
- 필요 변수 및 메소드
- someInstance(object) : Queue method 를 담을 객체
- storage (object) : 자료를 담을 object , 키는 number이며, value로 자료 값을 저장할것
- count (number) : 자료의 갯수를 return함, dequeue메소드 구현에또한 활용
- enqueue() (method) : 데이터를 담기위한 메소드
- dequeue() (method) : 데이터를 빼기위한 메소드
- size() (method) : 현재 존재하는 자료의 갯수를 return 함
Sudo Code
//Functional한 방법으로 작성
let queue = funciton(){
let someInstance = {};
let storage = {};
let count = 0;
someInstance.enqueue = function(value){//value : 넣을 자료
//overflow의 상황을 고려해야함
//1. overflow인가?
// -overflow 출력 후 종료
//2. overflow가 아닌가?
// 2-1. count++;
// 2-2. storage.count = value ->자료를 마지막에 넣어줌
}
someInstance.dequeue = function(){
// underflow의 상황을 고려해야함
// 1. underflow인가?
// -underflow출력 후 종료
// 2. underflow가 아닌가?
// 2-1. storage['0']의 자료를 지움
// 2-2. 이후 자료가 더 존재하는가?
// 2-2-1. 존재하지 않음 : 종료
// 2-2-2. 존재함 : storage의 key를 renumbering - count 변수를 활용
// 3. count--;
}
someInstance.size = function(){
//count를 return
}
}
반응형
'창고(2021년 이전)' 카테고리의 다른 글
[Java] Comparator (0) | 2019.11.16 |
---|---|
[자료구조] Linked List, Graph, Tree, Binary Search Tree, Hash Table (0) | 2019.11.15 |
[JS] OOP(Objcet Oriented Programming) (0) | 2019.11.14 |
[Git] pair programming work flow (0) | 2019.11.11 |
[JS] Symbol : ES6 type (0) | 2019.11.04 |