C#/자료구조5 [C# 자료구조] LinkedList, SortedList LinkedList 와 SortedList 2개의 자료구조 모두 List 에서 파생된 클래스 LinkedList 는 데이터를 포함하는 노드들을 연결하여 각 노드가 데이터와 다음/이전 링크 포인터를 갖게 되는 자료구조 (앞/뒤, 이중 연결 리스트 형태) LinkedList 는 특정 노드에서 삽입, 삭제가 편리하나 특정 노드를 검색하기 위해서는 시간이 다소 걸림 [O(n)] SortedList 는 Hashtable 과 ArrayList 의 혼합형이며 내부 데이터는 Key 와 Value 로 이루저져 있고, Key 와 Index 로 접근 가능 SortedList 는 내부적으로 정렬된 컬렉션을 유지하고 있다는게 큰 특징임 (정렬은 Value 이 아닌 별도의 Key 를 통해 정렬하고, Key 는 중복이 불가능함) .. C#/자료구조 2021. 10. 11. [C# 자료구조] Hashtable, Dictionary Hashtable 과 Dictionary 키 (Key) 와 값 (Value) 를 한쌍으로 저장됨 (공통) 키 (Key) 값은 유일해야 함 (공통) 키를 통한 값을 찾아서 탐색 속도가 빠름 (공통) Hashtable 은 선언 시, 자료형을 명시하지 않음 (ArrayList 와 동일) Dictionary 는 선언 시, 특정 자료형을 명시해야함 (나머지는 Hashtable 과 동일) Hashtable 보다 Dictionary 가 연산속도가 빠름 (모든 타입을 받는지 여부에 따른 차이) 선언 & 사용 방법 마무리 Hashtable 과 Dictionary 의 속성 및 메서드에 대한 정보는 참고자료를 확인 참고자료1 참고자료2 참고자료3 참고자료4 참고자료5 참고자료6 C#/자료구조 2021. 10. 3. [C# 자료구조] Stack, Queue Stack 과 Queue Stack 은 나중에 들어온 데이터가 먼저 나가는 선입선출 (LIFO) 방식 (Enqueue, Dequeue) Queue 는 먼저 들어간 데이터가 먼저 나가는 선입선출 (FIFO) 방식 (Push, Pop) 두 자료구조 모두 데이터와 작업을 순서대로 입력하고 차례대로 처리하기에 용이함 선언 & 사용방법 마무리 되돌리기, 뒤로가기 등의 기능을 구현한다면 스택 (Stack) 이 예시로 적합 여러 도전과제를 한꺼번에 달성했을 경우에 차례대로 뜨는 알림 기능을 구현한다면 큐 (Queue) 가 적합 스택과 큐의 자세한 설명 자료 참고자료1 참고자료2 참고자료3 (이미지 출처) C#/자료구조 2021. 9. 26. [C# 자료구조] ArrayList, List ArrayList 와 List ArrayList 는 길이가 고정되지 않는 추가 & 삭제의 변형이 가능한 가변형 객체 타입 (동적 배열) ArrayList 는 서로 다른 타입의 데이터를 배열에 저장 가능 => (박싱과 언박싱이 발생함) List 도 동일하게 동적 배열 List 는 ArrayList 의 단점을 보완하여 같은 타입만 저장이 가능함 => (박싱과 언박싱이 발생하지 않음) 특별한 목적이 없다면 ArrayList 를 사용하는 것은 권장하지 않음 선언 & 사용 방법 마무리 처음에 장단점을 몇몇 포함한 내용이 있기 때문에 일부 내용은 생략함 ArrayList 와 List 의 속성 및 메서드 그리고 성능에 대한 정보나 이슈는 참고자료를 확인 박스와 언박싱이란? (매우 중요한 정보) 참고자료1 (정리형) .. C#/자료구조 2021. 9. 20. [C# 자료구조] Array Array 데이터 형식이 같은 변수를 한번에 모아놓은 데이터의 집합이며, 자료구조 중에서 가장 기본이 되는 데이터 타입 기본적으로 배열의 데이터 형식은 값 형식, 배열 변수는 참조 형식 선언 방법 * 만약 데이터 타입이 참조 형식일 경우에는 요소들이 null 참조로 초기화됨 사용 방법 응용 방법 장단점 인덱스를 통한 검색이 용이함 연속된 메모리 공간으로 이루어져 있기 때문에 메모리 관리가 편함 크기가 고정되기 때문에 배열 요소가 삭제되면, 빈 공간으로 남겨두어야 함 (메모리 낭비) 컴파일 이전에 배열의 크기를 정해야함 (정적 배열) 컴파일 이후에 배열의 크기를 변동하기 어려움 (동적 배열은 가능) 마무리 이외에 가변 배열과 배열의 속성과 메서드 그리고 배열 종류별 성능에 대한 정보는 참고자료로 확인 참고.. C#/자료구조 2021. 9. 12. 이전 1 다음