📈알고리즘/자료구조(js)

js 자료구조(1)[Stack, Queue]

하얀성 2023. 3. 16. 19:56

<구현 코드>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
class Stack {
  constructor() {
    this.items = []
  }
 
  push(element) {
    this.items.push(element)
  }
 
  pop() {
    return this.items.pop()
  }
 
  peek() {
    return this.items[this.items.length -1]
  }
 
  isEmpty() {
    return this.items.length === 0
  }
 
  size() {
    return this.items.length
  }
 
  print() {
    console.log(this.items.toString())
  }
}
 
const stack = new Stack()
console.log(stack.isEmpty())
 
stack.push(20)
stack.push(10)
stack.push(30)
console.log(stack.size())
stack.print()
 
console.log(stack.pop())
console.log(stack.peek())
 
cs

<결과>


class Queue {
    constructor() {
        this.items = []
    }

    enqueue(element) {
        this.items.push(element)
    }
    dequeue() {
        return this.items.shift()
    }

    isEmpty() {
        return this.items.length === 0
    }

    peek() {
        if(!this.isEmpty()) {
            return this.items[0]
        }
        return null
    }

    size() {
        return this.items.length
    }

    print() {
        console.log(this.items.toString())
    }

}

const queue = new Queue()
console.log(queue.isEmpty())

queue.enqueue(10)
queue.enqueue(20)
queue.enqueue(30)
console.log(queue.size())
queue.print()

console.log(queue.dequeue()) // 먼저 넣은게 배열의 [0]가 되어, shift()를 통해 먼저 제거된다.
console.log(queue.peek()) // [0]이 제거된 후 배열의 다음 값인 [1]이 출력된다.

 

<결과>


stack은 push와 pop을 배열에 적용해서 구현.

queue은 push와 shift를 배열에 적용해서 구현.

'📈알고리즘 > 자료구조(js)' 카테고리의 다른 글

Queue 최적화, 원형 큐  (0) 2023.03.20