[자료구조] 2. 연결 리스트(Linked_List)
카테고리: Data Structure
태그: Data Structure, Unity
연결 리스트(Linked_List)
연결 리스트(Linked_List)
연결 리스트
특징, 장단점
특징
1. 노드 기반 구조 : 데이터 , 포인터
2. 비연속적 메모리 할당
3. 동적 크기 조정
장점
1. 동적인 메모리 관리
2. 데이터 삽입. 삭제 편함
단점
1. 메모리 오버헤드 : 각 노드가 데이터, 포인터를 저장, 메모리 많이 사용
2. 순차 탐색 접근 : 배열과 달리 특정 요소에 접근하기 위해서는 리스트를 순차적으로 탐색해야함.
게임 개발 활용
활용 상황
1. 데이터가 자주 추가되거나 제거 상황
2. 접근하는게 순차적일때
3. 크기가 불확실할 때
활용 예시
1. 동적 인벤토리 시스템
2. npc 행동 관리(순차적)
3. 레벨 내 동적 객체 관리(맵에서 적, 아이템 장애물 등 추가 제거)
4. 멀티플레이어 게임에서 플레이어 관리(접속해제 빈번, 플레이어 관리 용이)
5. 타이머 이벤트 관리(시간 순서 이벤트, 예전된 이벤트 실행, 제거에 편리)
GameObject(enemy) LinkedList 예시
using System.Collections.Generic;
using UnityEngine;
public class EnemyManager : MonoBehaviour
{
private LinkedList<GameObject> enemies;
void Start()
{
enemies = new LinkedList<GameObject>();
// 적 캐릭터들을 연결 리스트에 추가
foreach (var enemy in GameObject.FindGameObjectsWithTag("Enemy"))
{
enemies.AddLast(enemy);
}
}
// 적 캐릭터 제거 함수
public void RemoveEnemy(GameObject enemy)
{
enemies.Remove(enemy);
Destroy(enemy);
}
}
댓글남기기