자료구조 4

[C#] 해시셋 (HashSet)

1. 해시셋(HashSet)이란? 해시셋(HashSet)은 C#의 'System.Collections.Generic' 네임스페이스에 포함된 컬렉션 클래스 중 하나로, 해시 테이블을 기반으로 구현된 집합 데이터 구조입니다. 해시셋은 중복되지 않은 요소들의 모임을 관리하는데 최적화되어 있으며, 빠른 탐색, 추가 및 삭제 작업을 제공합니다. 이는 특히 고유한 값들만을 유지해야 하는 경우에 유용합니다.   2. 내부 작동 구조해시셋의 내부 구조는 해시 테이블을 기반으로 합니다. 해시 테이블은 키-값 쌍을 저장하는 데이터 구조로, 키를 해시 함수에 의해 해시 코드로 변환하고, 이 해시 코드를 인덱스로 사용하여 요소를 저장합니다. 해시 셋의 작동 원리는 다음과 같습니다. 해시 함수: 해시 함수는 객체의 고유한 해시..

CS 공부 2024.06.28

[C#] 링크드 리스트 (Linked List)

1. 링크드 리스트(Linked List)란? C#의 링크드 리스트(Linked List)는 데이터 구조의 한 현태로, 각 요소가 노드(Node)로 구성되며, 각 노드는 데이터와 다음 노드에 대한 참조를 포함합니다. 링크드 리스트는 동적 메모리 할당을 통해 크기가 가변적이며, 연속적인 메모리 주소에 저장되는 것이 아닌, 비 연속적으로 저장이 되며 이전, 다음 노드 정보를 통해 데이터를 연결합니다.이러한 구조로 배열과 달리 요소의 삽입 및 삭제가 용이하다는 장점이 있습니다.'System.Collections.Generic' 네임스페이스에 포함된 'LinkedList' 클래스를 사용하여 링크드 리스트를 구현할 수 있습니다.   2. 내부 작동 구조 링크드 리스트는 주로 세 가지 유형이 있습니다. 1. 단일 ..

CS 공부 2024.06.23

[C#] 딕셔너리 (Dictionary)

딕셔너리란?C#의 Dictionary 자료구조는 키와 값의 쌍의 데이터를 저장하는 제네릭 컬렉션입니다.이 자료구조는 System.Collections.Generic 네임스페이스에 포함되어 있으며, 키를 사용하여 값을 효율적으로 검색할 수 있습니다.  주요 특징 및 기능1. 키-값 쌍 저장:딕셔너리는 키와 값의 쌍을 저장합니다. 각 키는 고유하며, 중복될 수 없습니다.값은 중복될 수 있지만, 키는 유일해야 합니다. 2. 빠른 검색 속도:딕셔너리는 해시테이블을 사용하여 내부적으로 데이터를 저장하므로, 평균적으로 O(1)의 시간 복잡도로 키를 사용한 값 검색이 가능합니다. 3. 제네릭 타입 지원:Dictionary는 제네릭 타입을 지원하여, 타입 안정성과 성능을 보장합니다.예: Dictionary, Dicti..

CS 공부 2024.06.21

[C#] 리스트 (List)

1. C# List란?C#에서 List는 제네릭 컬렉션으로, C++에서 동적으로 크기가 조절되는 Vector와 유사합니다. List는 . Net의 ‘Systtem.Collections.Generic’ 네임스페이스에 속해 있으며, 다양한 데이터 타입을 저장하고 관리하는데 유용합니다.   2. 주요 특징제네릭 타입: 리스트는 제네릭 타입으로, 특정 타입의 데이터를 저장할 수 있습니다. 타입 안전성을 제공하여 컴파일 시간에 타입 오류를 방지할 수 있습니다.동적 크기 조정: 리스트는 내부적으로 배열을 사용하여 요소를 저장합니다. 리스트의 크기 조정은 다음과 같이 작동합니다. 1. 요소 추가 시 크기 조정: 리스트의 용량이 현재 요소의 수를 초과할 때, 새로운 요소를 추가하면 내부 배열의 크기가 두 배로 증가합니..

CS 공부 2024.06.16