자료구조&알고리즘

개요 - LinkedList란? LinkedList란 말 그대로 Link되어 있는 List라는 뜻이다. LinkedList의 한 원소는 노드(node)라고도 하며, 하나의 노드에는 value와 pointer가 존재한다. value에는 초기에 넣은 값이 존재하며, pointer는 다음 노드를 가리키게 된다. LinkedList는 선형과 원형 2가지의 형태가 존재하는데, 마지막 노드의 pointer값이 null인 경우는 선형 LinkedList, 마지막 노드의 pointer값이 맨 앞의 노드를 가리킨다면, 꼬리를 무는 형태가 되어 원형 LinkedList라고 한다. 자바에서는 CircularLinkedList는 구현되어 있지 않으므로, 궁금하다면 검색을 통해 공부하는 것이 좋을 것같다. LinkedList에..
개 요 - HashMap이란? 자바에서의 HashMap이란 Python의 Dictionary, JavaScript의 Json과 비슷한 형태로, Key와 Value가 한 쌍을 이뤄 저장되는 자료구조의 한 종류로 Map Interface를 상속받아 정의되어 있다. HashMap에서 데이터를 저장할 때는, Key로 들어오는 데이터를 hash함수를 통해 해싱하고 해당 인덱스에 Value로 들어온 값을 저장하게된다. 데이터를 조회할때는 Key 값만을 넣어서 조회하는데, 이때도 들어온 Key 값을 해싱해서 해당 구조에서 데이터를 조회하기때문에 보다 빠르게 데이터를 조회할 수 있다. 특징 Key,Value 구조로 이루어져있다. Key값은 중복이 안되며, Value 값은 같아도 Key값이 다르다면 중복이 가능하다. 해..
개요 Array는 단어 그대로 어떤 줄을 의미한다. 자바에서의 Array는 특정 타입들이 들어있는 자료구조를 의미한다. 동일한 자료형의 데이터를 연속된 공간에 저장하기 위한 자료구조이다. 연관된 데이터들을 하나로 묶어준다는 뜻이다. 해당 포스팅에서는 장점 및 단점, 선언과 간단하게 메서드들을 알아볼 예정이다. 특징 배열의 장점은 연관된 데이터를 저장하기 위한 변수의 선언을 줄여주며, 반복문 등을 통해서 계산과 같은 과정을 쉽게 할 수 있게한다. 단점이 있다면, 초기에 배열을 선언할 때 정해진 크기가 고정되어, 배열의 원소 추가나, 삭제가 용이하지 않다. 구현 // 배열 사이즈 정의 int size = 5; // int array int[] int_arr1 = new int[size]; int[] int_..
개요 - Queue란? Queue의 사전적 의미는 어떤 것을 기다리는 사람, 차 등의 줄 또는 줄을 서서 기다리는 것을 의미한다. 이처럼 줄을 지어서 순서대로 처리되는 자료구조가 Queue라고 한다. 큐는 LIFO 구조를 사용하는 Stack과는 다르게 FIFO(First In First Out)의 구조를 가지는 자료구조이다. FIFO는 가장 먼저 들어오는 데이터가 가장 먼저 나가는 구조를 의미한다. 자료구조의 맨 뒤에 데이터가 들어오는 것을 Enqueue, 맨 앞에서 데이터가 나가는 것을 Dequeue라고 한다. 특징 FIFO 구조를 갖는다 : 가장 먼저 들어온 데이터가 가장 먼저 밖으로 나가게된다. 큐의 앞쪽을 front, 큐의 뒤쪽을 rear로 정한다. Front에서는 Dequeue의 기능을, Rea..
heesang0930
'자료구조&알고리즘' 카테고리의 글 목록 (2 Page)