본문 바로가기
인강/패스트캠퍼스_환급챌린지

[패스트캠퍼스 챌린지 23일차] 문제 풀이로 실전 응용력을 다지는 필수 자료구조

by 맙소사 2021. 9. 28.

 

Ch 01. 선형자료구조 - 04. 연결리스트(Linked List) - 1

ArrayList와는 다른 구조로 되어있음. ArrayList의 경우 일렬로 쭉 늘어져있는 형태라면 Linked List는 메모리에 개별적으로 떨어져서 구성되어있는데 그 다음 데이터의 위치(노드)를 갖고 있어서 그 쪽으로 이동할 수 있다.

 

ArrayList는 추가와 삭제가 느린데 인덱스를 통해서 데이터에 접근하기 때문에 탐색은 빠름. 중간에 끼어있는 값의 추가와 삭제가 필요할 경우 기존 데이터를 전부 뒤로 밀어내고 삽입해야 하기 때문에 시간이 오래걸림.

 

Linked List는 추가와 삭제가 빠른데 데이터에 접근이 느림. 추가와 삭제를 할 때 노드만 변경해주면 되기 때문에 굉장히 빠름. 그런데 탐색의 경우 Node라는 친구가 다음 링크 포인트를 알려줘서 그걸 통해 데이터와 데이터 사이를 이동하기 때문에 조회에는 적합하지 않다. 찾으려면 처음부터 하나하나 뒤져봐야하기 때문임!

Head는 링크 포인트를 가지고 있고 마지막 Node는 null이라고 생각하면 된다.

 

하나의 노드는 하나의 데이터와 하나의 링크를 가지고 있는 것이 단순 연결 리스트(Singly Linked List)

SinglyLinkedList<T>
public void AddLast(T data)  //가장 뒤에 추가함
public void AddFirst(T data) //가장 앞에 추가함
public void AddAfter(Node<T> node, T value) //특정 노드 뒤에 값을 추가함
public Node<T> Find(T value)				//특정 노드를 탐색함
public void Remove(Node<T> removeNode)		//노드를 삭제함

위와 같은 방식으로 구현할 수 있다. T의 경우 제네릭 타입인거 잊지 말기.

만들 때 처음 Head의 역할을 하는 노드를 가지고 있어야 함!

 


https://bit.ly/37BpXiC
공백제외 : 총 736자 (1,173byte)

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #C#과유니티로배우는게임개발올인원패키지Online. #C#과 유니티로 배우는 게임 개발 올인원 패키지 Online.

댓글