목록전체 글 (52)
pugnet
큐(Queue)는 무엇인가? 큐의 사전적 의미는 일렬로 늘어선 사람들로 이루어진 줄을 말한다. 의미 그대로 차례대로 먼저 집어 넣은 데이터가 먼저 나오는 선형 자료구조이다. 큐의 특징 먼저 들어온 데이터가 먼저 나가는 선입선출(FIFO: First In First Out) 형태. 삽입(Insert)과 삭제(Delete) 연산은 각각 다른 곳에서 이루어진다. 먼저 들어간 데이터가 삭제(Delete)되는 연산은 디큐(Dequeue)라고 하며 연산이 일어나는 곳을 front라고 한다. 데이터를 삽입(Insert)하는 연산을 인큐(Enqueue)라고 하며 연산이 이루어 지는곳을 rear라고 한다. 큐의 사용 사례 은행에 가면 번호표를 받은 순서대로 업무를 보는 경우. 너비 우선 탐색(BFS) 구현. 프린트 출력..
스택(Stack)이란? Stack의 사전적인 의미는 쌓다이다. 말 그대로 데이터를 쌓아 올린 형태의 자료구조이다. 예를 들면, 주방에 같은 모양의 접시들을 아래부터 차곡차곡 쌓아 두고, 가장 위에 있는 접시부터 꺼내어 사용하는 것과 같다. 가장 마지막에 들어간 데이터를 가장 먼저 빼내는 형태로 후입선출(LIFO : Last In First Out)의 특징을 가지고있다. 스택의 특징 맨 위에 있는 가장 마지막에 들어온 데이터에만 접근이 가능하다. 따라서 맨 위에서만 데이터를 삽입(push)할 수 있고, 맨 위의 데이터만 삭제(pop)할 수 있다. 이때, 맨 위의 원소를 top이라고 하고 가장 아래에 있는 시작부분을 bottom이라고 한다. 스택의 활용 백스페이스 : 최근 입력 데이터 지우기. ctrl+z ..
연결리스트(Linked List)란? 데이터와 포인터를 가지고 있는노드 객체가 선형으로 연결되어 있는 자료구조. 여기서 노드가 가지고 있는 포인터는 바로 앞이나 바로 뒤의 노드를 가리킨다. 연결리스트의 장단점 연결리스트를 사용하면 중간 지점에서도 자료의 삽입과 삭제가 용이하지만, 배열의 index처럼 특정 데이터에 바로 접근이 불가능 하여 데이터에 접근하는 시간이 오래 걸린다는 단점이 있다. 연결리스트의 종류 단일 연결 리스트 : 각 노드는 자료 필드와 다음 노드를 가리키는 넥스트 포인터 필드를 가지고 있다. 이중 연결 리스트 : 단일 연결 리스트와 유사하지만, 각각 앞의 노드와 뒤의 노드를 가리키는 두개의 포인터 필드를 가지고 있다. 원형 연결 리스트 : 일반 연결 리스트에 마지막 노드의 포인터가 가장..
자료구조란? 데이터 단위와 데이터 자체 사이의 물리적 또는 논리적인 관계. 효율적으로 데이터를 사용할 수 있도록 컴퓨터에 저장하는 방법이다. 배열이란? 동일한 크기의 메모리 공간에 같은 자료형을 가진 데이터가 연속적으로 나열된 선형 자료구조이다. 하나의 변수에 연관된 자료들을 담아 관리하기 위해 사용한다. 배열 선언 - JAVA int[] a; // 구성 요소의 자료형이 int인 배열 선언 b = new int[3]; // 길이가 3인 배열 본체를 new로 생성하고 배열 변수 b에 할당 int[] c = {1, 2, 3, 4, 5, 6, 7}; // 배열 선언과 동시에 특정 값으로 초기화. 배열은 index로 요소(데이터)에 접근할 수 있다. 배열의 index는 0부터 시작한다. 위에서 선언한 배열 c를..