[Unity] Linked List, Stack, Queue

2024. 6. 7. 21:11·Record/TIL
목차
  1. 1. 링크드 리스트 (Linked List)
  2. 2. 스택 (Stack)
  3. 3. 큐 (Queue)
반응형

1. 링크드 리스트 (Linked List)

특징:

  • 링크드 리스트는 노드의 집합으로 이루어진 데이터 구조이다. 각 노드는 데이터와 다음 노드를 가리키는 포인터를 포함하고있다.

장점:

  • 크기 변동이 많은 데이터를 효율적으로 관리할 수 있다.
  • 삽입과 삭제가 리스트의 중간에서도 O(1) 시간 복잡도로 가능하다.
  • 앞 뒤 삭제가 삽입, 삭제가 가능하다. 

단점:

  • 메모리 사용량이 배열보다 크다.
  • 임의의 위치에 있는 요소에 접근하려면 O(n) 시간이 소요된다. (인덱스 접근이 불가능해서 순차적으로 읽어야하기때문)

 

LinkedList<int> linkedList = new LinkedList<int>();
linkedList.AddLast(1);
linkedList.AddLast(2);
linkedList.AddLast(3);

foreach (var item in linkedList)
{
    Console.WriteLine(item);  // 출력: 1, 2, 3
}

 

 

2. 스택 (Stack)

특징:

  • 스택은 LIFO(Last In, First Out) 방식으로 작동하는 데이터 구조이다. 
  • 주요 연산으로는 Push - 삽입, Pop -삭제, Peek -맨 위 요소 조회 등이 있다.

장점:

  •  O(1) 시간 복잡도를 가진다.

단점:

  • 중간에 있는 데이터를 접근하려면 스택을 모두 꺼내야 한다.

 

Stack<int> stack = new Stack<int>();
stack.Push(1);
stack.Push(2);
stack.Push(3);

Console.WriteLine(stack.Pop());  // 출력: 3
Console.WriteLine(stack.Peek());  // 출력: 2

 

3. 큐 (Queue)

특징:

  • 큐는 FIFO(First In, First Out) 방식으로 작동하는 데이터 구조이다.
  • 주요 연산으로는 Enqueue - 삽입, Dequeue -삭제, Peek -첫 번째 요소 조회 등이 있다.

장점:

  • O(1) 시간 복잡도를 가진다.

단점:

  • 중간에 있는 데이터를 접근하려면 큐를 모두 꺼내야 한다.
Queue<int> queue = new Queue<int>();
queue.Enqueue(1);
queue.Enqueue(2);
queue.Enqueue(3);

Console.WriteLine(queue.Dequeue());  // 출력: 1
Console.WriteLine(queue.Peek());  // 출력: 2

 

C#의 리스트는 배열리스트로 맨 앞에 있는걸 삭제하면 앞으로 모두 땡겨와야한다. 그렇기때문에 시간이 오래걸리는 단점이 있는데 링크드 리스트는 포인터로 연결을 하는 형식이라서 자르고 연결하면 장땡이라 삽입 삭제가 빈번한 구조일때는 링크드 리스트를 사용하는 것이 좋다. 그외는 배열보다 메모리 사용량이 커서... 리스트를 쓰는게 좋다.

 

 

오늘의 회고

 

오늘 특강은 자료구조에 대해서 해주셨는데 트리도 있었지만 안올리는 이유는 못올리는 것이다.

와 진짜 대학 다닐때 파일처리론에서 했던 그 트리 코딩하기가 어떻게 한개도 생각이 안날 수 가..................................

근데 다시 보면 뭐 이해라도 되어야하는데 아~ 그거~ 하면서 한개도 모르겠어서 튜터님이 코드 올려주시면 그거 바탕으로 공부를 다시 해야한다................

나는 바보다............

그리고 우선순위큐도 어제! 풀었는데 오늘!!! 알려주셔서 신기했다!!

아마 좀 더 공부를 하게 된다면 이 글에 추가를 하지않을까 싶다!

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'Record > TIL' 카테고리의 다른 글

[Unity] 3D 러너게임 팀프로젝트 마무리 (Ps.일주일치고는 완벽..!)  (2) 2024.06.11
[Unity] 유니티 충돌시 음악 플레이 되게하기 (+트리거)  (0) 2024.06.10
[Unity] UI 위에 오브젝트 표시되게 하기  (0) 2024.06.05
[Unity] 3D 맵 제작 (2D 타일맵을 이용하여 제작하기)  (7) 2024.06.04
[Unity] 유니티 이벤트와 액션, 구독 기능  (0) 2024.06.03
  1. 1. 링크드 리스트 (Linked List)
  2. 2. 스택 (Stack)
  3. 3. 큐 (Queue)
'Record/TIL' 카테고리의 다른 글
  • [Unity] 3D 러너게임 팀프로젝트 마무리 (Ps.일주일치고는 완벽..!)
  • [Unity] 유니티 충돌시 음악 플레이 되게하기 (+트리거)
  • [Unity] UI 위에 오브젝트 표시되게 하기
  • [Unity] 3D 맵 제작 (2D 타일맵을 이용하여 제작하기)
석영
석영
관심 분야는 AR, VR, 게임이고 유니티 공부 중 입니다. (정보처리기사,컴퓨터그래픽스운용기능사 취득)
반응형
석영
유석영의 개발공부
석영
전체
오늘
어제
  • 분류 전체보기
    • Unity
      • Project
      • Tip
      • Assets
    • Record
      • TIL
      • Game
    • Language
      • C#
      • Node.js
      • HTML, JS
    • Study
      • Linear Algebra

인기 글

최근 글

hELLO· Designed By정상우.v4.5.2
석영
[Unity] Linked List, Stack, Queue

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.