DataStructure(54)
-
선형데이터구조, 연결리스트(LinkedList) #3 addFirst/addLast 메서드
이전글 https://yonghwankim-dev.tistory.com/106?category=974118 선형데이터구조, 연결리스트(LinkedList) #2 노드와 크기 및 경계조건 이전글 https://yonghwankim-dev.tistory.com/105?category=974118 선형데이터구조, 연결리스트(LinkedList) #1 연결리스트 소개 1. 연결리스트(LinkedList)란 무엇인가? 배열과 비슷하게 연결리스트는 선형 데이.. yonghwankim-dev.tistory.com 개요 이전글에서는 연결리스트 클래스에서 Node라는 내부 클래스를 정의하고 데이터를 추가하거나 제거할 때 주의해야할 경계 조건에 대해서 알아보았습니다. 이번 글에서는 연결리스트에 데이터를 추가할 때 앞쪽에 ..
2021.09.14 -
선형데이터구조, 연결리스트(LinkedList) #2 노드와 크기 및 경계조건
이전글 https://yonghwankim-dev.tistory.com/105?category=974118 선형데이터구조, 연결리스트(LinkedList) #1 연결리스트 소개 1. 연결리스트(LinkedList)란 무엇인가? 배열과 비슷하게 연결리스트는 선형 데이터 구조입니다. 그러나 배열과는 달리 연결리스트의 요소들은 메모리상의 연속적인 위치에 저장되지 않습니다. 왜 yonghwankim-dev.tistory.com 1. 개요 이전글에서는 연결리스트 데이터 구조의 특징에 대해서 소개하였습니다. 이번글에서는 연결리스트 클래스의 노드 정의와 필드 멤버를 정의하는 것을 소개하겠습니다. 그리고 자료구조에서 데이터들을 추가하거나 제거할때 등의 상황에서 고려해야 하는 경계 조건에 대해서 알아보겠습니다. 2. 연..
2021.09.14 -
선형데이터구조, 연결리스트(LinkedList) #1 연결리스트 소개
1. 연결리스트(LinkedList)란 무엇인가? 배열과 비슷하게 연결리스트는 선형 데이터 구조입니다. 그러나 배열과는 달리 연결리스트의 요소들은 메모리상의 연속적인 위치에 저장되지 않습니다. 왜냐하면 요소들은 포인터를 사용하여 또 다른 요소의 주소를 가리키기 때문입니다. 2. 연결리스트를 사용하는 이유는 무엇인가? 연결리스트의 사용 이유를 설명하기 전에 배열의 단점을 설명하겠습니다. 배열의 사이즈는 정적입니다. 그래서 사전에 저장하는 공간을 배열로 사용할때 배열의 크기를 먼저 정해야 합니다. 그리고 크기의 상한선을 미리 정한다면 메모리 위에서도 배열은 그 크기만큼 공간을 사용하고 있을 것입니다. 배열에서 새로운 요소를 삽입하는 것은 비용이 많이 소모됩니다. 왜나하면 배열에 요소를 삽입시 배열 내에서 순..
2021.09.14 -
선형데이터구조, 배열(Array) #3 ArrayList Collection Framework (JAVA)
1. ArrayList Collection Framework 소개 ArrayList는 java.util 패키지에서 컬렉션 프레임워크(Collection Framework) 중 하나입니다. ArrayList는 자바에서 동적인 배열을 제공합니다. 그래서 ArrayList는 표준 배열보다 느리지만 배열의 조작(삽입,삭제,조회)이 많이 필요할 경우 유용합니다. ArrayList 클래스의 상속관계는 다음과 같습니다. 위의 그림에서 List 인터페이스에서 표준화된 리스트 연산(삽입, 삭제, 조회 등)을 선언하고 ArrayList 클래스에서 List 인터페이스 선언된 메소드들을 실제로 구현합니다. 하지만 java.util.ArrayList 클래스는 이미 구현이 완료되었기 때문에 저희 입장에서는 ArrayList 클래..
2021.09.10 -
선형데이터구조, 배열(Array) #2 배열을 이용한 리스트 구현 (JAVA)
개요 배열 기반으로 구현한 배열리스트의 주요한 메서드(삽입, 삭제, 탐색) 수행 과정을 알아보고 배열리스트를 직접 구현을 해보겠습니다. 아래의 구현 기능은 java.util.ArrayList 패키지의 메서드를 기반으로 직접 구현을 합니다. 구현 기능 메서드 설명 add(int index, Object element) index번째 자리에 element를 저장합니다. add(Object element) 배열리스트의 끝쪽에 element를 추가합니다. clear() 배열리스트의 element들을 초기화합니다. contains(Object element) 배열리스트에서 매개변수의 element 값이 포함되어 있는지 조회합니다. get(int index) 배열리스트 index번째 자리의 element값을 반환합..
2021.09.10 -
선형데이터구조, 배열(Array) #1 배열의 소개
요약 및 정리 배열(Array)이란 무엇인가? 배열은 메모리 위에서 연속적으로 위치하고 같은 데이터 타입의 모음 배열의 특징 배열안의 각각의 요소가 데이터 타입이 동일함 배열의 0번째 위치는 배열을 가리키는 주소값 배열은 고정된 크기를 가짐 랜덤 엑세스(Random Access) 허용 배열의 장점 랜덤 엑세스로 인한 빠른 탐색 속도 배열의 단점 삽입과 삭제 연산에 많은 비용이 소모됨 1. 배열(Array)의 소개 배열은 메모리 위에서 연속적으로 위치하고 같은 데이터 타입의 모음입니다. 이는 배열을 가리키는 주소값에 추가적인 값을 더하여 각 요소의 위치를 계산하기 쉽게 합니다. 즉, 배열을 가리키는 주소값이란 배열의 첫번째 요소의 메모리 위치입니다. 첫번째 요소의 인덱스는 0번째이고 두 인덱스간의 차이는 ..
2021.09.09