큐(Queue)
2022. 11. 11. 13:08
컴퓨터 과학/자료구조
큐(Queue) - FIFO(First In First Out) 으로 데이터를 저장하는 구조입니다. - 먼저 들어온 데이터가 먼저 나갑니다. - 주요 동작 : enqueue, dequeue, peekFront - enqueue(데이터) : 큐에 데이터 추가 - dequeue( ) : 큐의 가장 앞에 있는 데이터 제거 후 반환 - peekFront : 큐의 가장 앞에 있는 데이터 반환 JavaScript 로 Queue 구현(feat.Linked List) dequeue 메서드 구현 시 array 가 제공하는 shift() 메서드를 사용하면 간단하게 구현 가능하겠지만, shift() 메서드는 시간 복잡도가 O(n) 이므로 Queue 구현에 적합하지 않습니다. 시간 복잡도를 O(1)으로 하기 위해 연결 리스트..
스택(Stack)
2022. 11. 11. 12:42
컴퓨터 과학/자료구조
스택(Stack) - LIFO(Last In First Out) 으로 데이터를 저장하는 구조입니다. - 나중에 들어온 데이터가 먼저 나갑니다. - 주요 동작으로는 push, pop, peek 등이 있습니다. - push(데이터) : 스택에 데이터 추가 - pop() : 스택으로부터 최상단에 있는 데이터 제거 - peek() : 스택 최상단에 있는 데이터 값 반환 JavaScript 로 스택 구현(feat. Array) class Stack { constructor() { // item들을 받을 배열 생성 this.stack = []; } isEmpty() { return this.stack.length == 0; } push(item) { this.stack.push(item); } pop() { ret..
ADT 와 Data Structure 의 차이
2022. 11. 11. 11:52
컴퓨터 과학/자료구조
ADT - Abstract Data Type 의 약자로 추상화된 데이터 타입이라는 의미를 가지고 있습니다. - 가령 이 데이터 타입은 어떤 속성과 어떤 메서드를 가지고 있는지, 그리고 이 메서드는 무엇을 하는 건지 정의만 합니다. - 실제로 이 데이터 타입이 내부적으로 어떤 자료 구조로 구현되어 있고 어떻게 동작하는지에 대해서는 논의하지 않습니다. - 정의, 구현을 분리하면 사용자는 굳이 어떻게 구현되어 있는지 알 필요 없이 데이터 타입을 사용하는데 아무런 문제가 없습니다. - 그저 사용자는 ADT에서 정의된 기능을 사용하기만 하면 되고 구현은 개발자가 알아서 하면 됩니다. - 설사 데이터 타입의 구현 방법이 바뀌더라도 정의만 그대로라면 기존 사용자는 아무런 변경 없이 동일하게 데이터 타입을 사용할 수 ..
자료구조의 구분
2022. 11. 8. 13:39
컴퓨터 과학/자료구조
자료구조는 크게 선형 자료 구조와 비선형 자료 구조로 구분할 수 있습니다. 선형 자료 구조 선형 자료 구조는 요소가 일렬로 나열되어 있는 자료 구조입니다. 선형 자료 구조로는 연결 리스트, 배열, 벡터, 스택, 큐 등이 있습니다. 비선형 자료 구조 비선형 자료 구조는 일렬로 나열하지 않고 자료 순서나 관계가 복잡한 자료 구조입니다. 비선형 자료 구조로는 그래프, 트리, 힙, 우선순위 큐, 맵, 셋, 해시 테이블 등이 있습니다. 앞으로 하나씩 공부하며 포스팅할 계획입니다. 참조 면접을 위한 CS 전공지식 노트 chapter 5 자료구조