반응형
1. 노드 생성하기
class MyLinkedListNode<T>
{
public T Data;
public MyLinkedListNode<T> Next;
public MyLinkedListNode<T> Prev;
}
그림 참조
2. 연결리스트 클래스
class MyLinkedList<T>
01 연결리스트 기본 구조 설정
public MyLinkedListNode<T> Head = null; // 첫번째 노드
public MyLinkedListNode<T> Tail = null; // 마지막 노드
public int Count = 0; // 연결 리스트에 연결된 노드의 수
그림 참조
02 AddLast
public MyLinkedListNode<T> AddLast(T data)
{
MyLinkedListNode<T> newRoom = new MyLinkedListNode<T>();
newRoom.Data = data;
}
1) 빈 연결 리스트인 경우
if (Head == null)
Head = newRoom;
2) 빈 연결리스가 아닌 경우
if(Tail != null)
{
Tail.Next = newRoom;
newRoom.Prev = Tail;
}
3) 업데이트
Tail = newRoom;
Count++;
return newRoom;
03 Remove
1) 삭제하려는 노드가 Head인 경우
if (Head == room)
Head = Head.Next
2) 삭제하려는 노드가 Tail인 경우
if (Tail == room)
Tail = Tail.Prev;
3) 삭제하려는 노드의 Prev가 null이 아닌 경우
if (room.Prev != null)
room.Prev.Next = room.Next;
4) 삭제하려는 노드의 Next가 null이 아닌 경우
if (room.Next != null)
room.Next.Prev = room.Prev;
참고 : 본 내용은 MMORPG PART2 강의를 수강하여 작성하였습니다.
반응형
'코딩테스트 준비 > 자료구조 & 알고리즘' 카테고리의 다른 글
C# - BFS(너비우선탐색)개념 및 코드 구현 (0) | 2023.09.19 |
---|---|
C# - DFS(깊이우선탐색)개념 및 코드 구현 (0) | 2023.09.06 |
C# - 문자열로 이루어진 리스트 요소들을 정수로 바꾸는법 +) 지연 평가(Lazy Evaluation) (0) | 2023.09.01 |
C# - IEnumerable설명 및 메서드(MIN,MAX,Average등) (0) | 2023.08.28 |
C# - 동적 배열 구현 (0) | 2023.08.28 |
댓글