본문 바로가기

자료구조2

스택(Stack) 개념 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조(LIFO - Last In First Out)이다. 구현 스택(Stack)는 연결리스트(Linked List)로 구현이 가능하다. 추가와 삭제를 같은 방향에서 하는 자료구조 단점 크기를 동적으로 변경하지 않는 이상 언제 오버플로우가 일어나도 이상하지 않다. (물론 위 경우는 push가 많은 경우이다.) Java 라이브러리 - 스택(Stack) peek() - 스택의 맨 윗 값을 얻지만 삭제하지 않는다. pop() - 스택의 맨 윗 값을 얻고 삭제한다. push(e) - 요소를 스택의 맨 위에 넣는다. References https://docs.oracle.com/javase/7/docs/api/java/util/Stack.html Stack (J.. 2019. 10. 6.
큐(Queue) 개념 컴퓨터의 기본적인 자료 구조의 한가지로, 먼저 집어 넣은 데이터가 먼저 나오는 FIFO(First In First Out)구조로 저장하는 형식, 나중에 집어넣은 데이터가 먼저 나오는 스택과는 반대되는 개념 구현 큐(Queue)는 연결리스트(Linked List)로 구현이 가능하다. 연결리스트란, 각 노드가 데이터와 포인터를 가지고 있고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조 단점 poll해도 메모리가 비어지는 것이 아니라 값이 들어 있던 부분에 null이 들어가고 front위치만 뒤로 옮겨 지기 때문에 추가로 offer하려고 하면 overflow가 발생한다. 이 단점을 보완한 것으로 원형큐 or 환영큐가 있다. Java 라이브러리 - 큐(Queue) Java 라이브러리에서 큐(.. 2019. 10. 1.