'Programming/Data Structure'에 해당되는 글 7건
링크드 리스트(Linked List)
리스트(List)
값(Value)과 '다음 노드를 가리키는 참조(Next)'를 가지고 있는 노드(Node)를 사용한 연결 리스트
시간 복잡도
삽입, 삭제(위치를 알 경우) : O(1)
탐색 : O(n)
RIsN
완전 이진 트리(Complete Binary Tree)
RIsN
RIsN
RIsN
트리(Tree)
트리 구조, 가지 치기 형식
시간복잡도 : ?
용어
최상위 노드(Root Node)
계층(Level)
부모 노드(Parent Node)
자식 노드(Child Node)
잎새 노드(Leaf Node) : 자식 노드(Child Node)가 하나도 없는 노드
최상위 노드(Root Node)를 시작으로, 모든 노드(Node)들은 부모 노드(Parent Node)로써 자식 노드(Child Node)를 가진다.
자식 노드의 개수를 2개로 제한하는 경우 이진 트리(Binary Tree) 라고 한다.
예 : 군대 계급제도
RIsN
해쉬 테이블(Hash Table)
키(Key)와 값(Value)을 갖는 구조
시간 복잡도
해쉬 충돌(Hash Collision) : 해쉬가 충돌하는 현상
해결법 : 분리 연결법(Sperate Chaining) > 동일한 해쉬의 데이터에 대해 자료구조를 활용해 추가 메모리를 사용해, 다음 데이터의 주소를 저장하는 것 > 예 : 동일한 해쉬(152)에 새로운 해쉬 테이블을 작성, 그 테이블을 토대로 여러개의 값이 저장되게 하는 것으로 이해 중
C# Dictionary 등
예 : 호텔의 키와 안의 고객 등
RIsN
큐(Queue)
FIFO : First In First Out / 먼저 들어온 게 먼저 나간다
시간 복잡도
용어
Enqueue : 삽입
Dequeue : 삭제
Front : 앞, 삭제되는 곳
Rear : 뒤, 삽입되는 곳
배열의 경우 원형 배열로 구현을 추천
선형일 경우, 삭제해도 데이터가 계속 밀려나는 현상이 일어난다.
아니면 연결 리스트를 사용해 구현
예 : 은행의 번호표(Queue)
RIsN