728x90

전체 글 58

C# 연결 리스트 만들기

namespace Algorithm { class MyLinkedListNode { public T Data; // 참조, 주소 값을 저장 public MyLinkedListNode Next; // 다음 값 public MyLinkedListNode Prev; // 이전 값 } class MyLinkedList { public MyLinkedListNode Head = null; // 첫번째 방 public MyLinkedListNode Tail = null; // 마지막 방 public int Count = 0; // 총 방의 개수 public MyLinkedListNode AddLast(T data) { MyLinkedListNode newRoom = new MyLinkedListNode(); new..

C#/코드 2021.09.14

C# 동적 배열 만들기

namespace Algorithm { class MyList { const int DEFAULT_SIZE = 1; T[] _data = new T[DEFAULT_SIZE]; public int Count; // 실제로 사용 중인 데이터 개수 public int Capacity // 예약된 데이터 개수 { get { return _data.Length; } } // O(1) 예외 케이스 : 이사 비용은 무시한다. public void Add(T item) { // 1. 공간이 충분히 남아 있는지 확인 if (Count >= Capacity) { // 공간을 다시 늘려서 확보 T[] newArray = new T[Count * 2]; for (int i = 0; i < Count; i++) { newArr..

C#/코드 2021.09.09

C# 선형 자료 구조

선형 자료 구조 -> 자료를 순차적으로 나열한 형태 배열, 연결 리스트, 스택 / 큐 배열 - 사용할 개수를 고정해서 할당 (절대 개수 변경 불가) - 연속된 배열로 배정 받아 사용 장점 : 연속된 배열 단점 : 배열을 추가 / 축소 불가 동적 배열 - 사용할 배열 개수를 유동적으로 계약 - 연속된 배열을 배정 받아 사용 문제점 : 이사 비용은 어떻게? 동적 배열 할당 정책 - 실제로 사용할 배열보다 많이, 여유분을 두고 (대략 1.5 ~ 2배) 할당 - 이사 횟수를 최소화 장점 : 유동적인 계약 (배열 추가 시 이사 횟수 초기화) 단점 : 중간 삽입 / 삭제

C#/공부 2021.09.09
728x90