LinkedList<T>
·
⭐C Sharp/15-3. 리스트
링크드 리스트 ( LinkedList )LinkedList 는 C# 에서 제공하는 자료구조의 연결 리스트의 구현체이다.이중 연결 리스트 ( Double Linked List ) 로 구성되어 있다.링크드 리스트에서 노드 ( Node ) 는 가장 작은 단위, 즉 데이터를 담는 상자를 말한다. 노드 ( Node ) 의 구성노드는 2가지 정보를 가지고 있다.[ 데이터 | 다음 노드 주소 ] -> [ 데이터 | 다음 노드 주소 ] -> [ 데이터 | null ] 1. 데이터 ( Data , 값 )- 저장하고 싶은 값- 예시 : 정수형 10 , 문자열 "호찬" , 객체 Player 등등.. 2. 링크 ( Link, 참조 / 포인터 )- 다음 노드 ( Node ) 를 가리키는 정보- 단일 연결 리스트 : Next-..
250924 딕셔너리
·
📖TIL
static void Main(string[] args){ ArrayList array = new ArrayList(); List intArray = new List(); // 이게 더 안전하고 좋다 // List 가 ArrayList 의 진화형 // HashTable 이 진화하면 Dictionary // 이것의 문제점 // 박싱 언박싱 성능 저하 // 아무거나 허용한다 (단점) array.Add(1); array.Add("아니 이게?"); array.Add(1); // int 만 담을수 있다 intArray.Add(1); intArray.Add("아니 이게?"); intArray.Add(12.23f);}​ Hashtablest..
250924 스택과 큐
·
📖TIL
Stack은 자료를 적층구조로 쌓는 모양 가장 먼저 들어간 자료가 가장 늦게 나오는 구조 선입후출 , 후입 선출 First in Last Out , Last in First Out FIFO , LIFO 분야 웹브라우저 뒤로가기 턴제게임 턴 무르기 트레이서 시간역행 Ctrl + ZStack keyInputs = new Stack();// 무한으로 키를 입력 받다가, 0 이 입력되면 멈추고, 여태 입력한 키를 역순 출력keyInputs.Push('a'); // 집어 넣을때 사용keyInputs.Push('s');keyInputs.Push('d');keyInputs.Push('f');var poped = keyInputs.Pop(); // 가장 위에 있는 요소를 반환과 동시에 터트려서 없앤다var peek =..
250924
·
📖TIL
자료구조수많은 데이터를 효율적으로 관리하는 기법 List순서가 중요하거나 크기가 가변적인 데이터 관리에 유리배열을 쓸법한 상황은 보통 다 List 도 어울린다인덱스로 한번에 특정 요소를 가져올 때 좋다중간에 삽입/삭제가 일어나면 연속성을 유지하기 위해 연산 부하가 생김static void Main(string[] args){ List inven = new List(); inven.Add("철삽"); inven.Add("다이아곡괭이"); inven.Add("구리"); // ↓Capacity 가 아닌 Count 를 사용한다 for (int i = 0; i Linked List 노드라는 단위로 이루어진 자료구조1. 데이터 ( Data )2. 다..
List<T>
·
⭐C Sharp/15-3. 리스트
리스트 ( List )List 는 C# 에서 가장 널리 사용되는 제네릭 중 하나이다.C# 에서 배열의 불편함을 개선해서 만든 자료구조이다.내부적으로는 자료구조 중에서 동적 배열을 기반으로 하며,크기를 자동으로 늘리면서 순차적으로 데이터를 저장할 수 있다. 단, 내부에서는 실제 배열로 동작이 되고, 크기를 넘어선 추가가 일어날 때새로운 메모리 공간에 더 큰 배열을 할당하게 된다. List 선언 방법리스트는 System.Collections.Generic 네임스페이스 안에 있는 List 제네릭 클래스를 사용한다.( T 는 타입 자리 - int, string , MyCalss 같은 형식을 넣으면 된다 )using System.Collections.Generic// System.Collections.Gene..
인덱서
·
📖TIL
class Enemy { public string Name { get; set; } } class Ally { public string Name { get; set; } } //기존 배열이 몇개의 사이즈였던, 새로운 객체를 주기만 하면 현재의 배열 맨 뒤에 알아서 추가하는 기능 class Troop { T[] army; int count; //실제 null이 아닌 T 의 보유 갯수 기억용 public int Capacity // 배열의 길이를 반환시켜주는 프로퍼티 { get { return army.Length; } } public int Co..
인덱서
·
📖TIL
struct Item{ public string Name { get; set; } public string Description { get; set; }}class Inventory{ /* 인덱서 [접근지정자] [반환형태] this [int i] { get{return 반환할 것} set{세팅할 값} } */ Item[] items; //인벤토리는 아이템'들'을 들고 있다 public Item this[int i] { get { return items[i]; } set { items[i] = value; } } //▼ 인벤토리를 통으로 건네주는 프로퍼티 버전 publi..
델리게이트
·
📖TIL
◎델리게이트델리게이트는 메서드/함수를 가리키는 리모컨 같은 것이다. 리모컨 버튼을 누르면 TV 가 켜지듯, 델리게이트를 실행하면 연결된 메서드가 실행된다. 즉, 메서드를 변수처럼 저장하고 실행할 수 있는 도구이다. 전화번호부에 "부모님" , "친구" , "치킨집" 번호를 저장해놓으면 필요할 때 그 번호를 불러서 전화를 걸수 있다. 델리게이트도 똑같이 메서드의 "주소"를 저장해놓고, 필요할 때 꺼내서 호출한다. ◎델리게이트 체인 하나의 델리게이트 변수에 여러 개의 메서드를 차례대로 연결하는 것. 실행하면 연결된 메서드들이 순서대로 전부 실행된다. 그래서 체인(사슬) 이라고 부른다. 도미노를 일렬로 세워놓고 하나를 쓰러뜨리면 순서대로 다 쓰러지게된다. 델리게이트 체인도 마찬가지로, 한 번 호출하면 연결된 ..
델리게이트
·
📖TIL
namespace Week_3{ // 델리게이트 기입, 이후 3가지 정보 필요 // 반환 , 델리게이트명, 매개변수(인자) 형태 delegate void MyDel(); // 이제 MyDel 로 만든 객체는 함수 중에서, 반환은 없고, 매개변수는 없는 함수를 기억할 수 있음 delegate int myDel2(); // MyDel2 만든 객체는 반환은 int 형이고, 매개변수는 없는 함수를 기억할 수 있음 class TempClass { public void PrintTemp() { Console.WriteLine("매개변수도 없고, 반환도 없는 메서드"); } } internal class ..