DataStructure Fundamental
ADT(Abstract Data Type)
- abstract
- 프로그램의 핵심부분을 간단하게 설명하기 위해 생겨남
- 프로그램의 핵심부분을 간단하게 설명하기 위해 생겨남
linked-list(연결리스트)
-
리스트들을 연결해줌
- 연결: 프로그래밍에서 참조의 기능으로 구현
=> 참조되는노드
의 '위치바꾸기'
- 연결: 프로그래밍에서 참조의 기능으로 구현
-
리스트의 길이를 별도로 지정해줄 필요 X
=> 별도의 인덱스를 지정할 필요없이 연결되는 구조 -
연결리스트
- 인덱스 확장
- 요소가 참조하는
노드
에 저장됨- 각
노드
는 연결리스트의 다음 노드에 대해 참조(포인터
) 함 - 참조기호:
.
- 삽입, 할당기호:
=
- 각
-
배열
- 인덱스 접근
- 요소를 직접 접근해 저장, 인덱스 활용
-
링크드리스트 구조
Node(노드)
: 데이터와 다음 데이터를 가리키는 주소(포인터)로 이루어져 있음Pointer(포인터)
: 각 노드에서 다음 데이터를 가리키는 주소값을 가짐Head
: 링크드리스트의 시작점인 데이터Tail
: 링크드리스트의 가장 마지막 데이터Next=None
(또는 Null): 다음 데이터가 없을 경우 포인터의 주소값은 None 또는 Null
Queue(큐)
-
FIFO(선입 선출) 순서로 저장하는 자료구조
-
ex) 마트 계산대 줄
- 줄을 선 맨 첫 번째 고객이 가장 먼저 계산함
-
deque
- double-ended queue
- 큐에서 양방향으로 데이터 처리
- double: (자료구조에서) 양방향
-
큐의 Time and Space Complexity(시간, 공간 복잡도)
-
Enqueue(대기열에 넣기)
- 데이터를 큐에 추가하면 (데이터를 큐 rear에 추가) O(1) 시간 걸림
-
Dequeue(대기열에서 빼기)
- 데이터를 큐에서 빼면 (데이터를 큐 front에서 제거) O(1) 시간 걸림
-
-
실제로 값을 빼거나 삭제시키는 시키는 개념 X
-
enqueue
- 새로운 노드의 저장공간(변수)를 만들어주고, 그 저장공간에 노드를 넣어주는 개념
-
dequeue
- 삭제할 노드를 위해 저장공간(변수)를 만들어주고, 그 저장공간에 삭제노드를 넣어주는 개념
-
pop
-
리스트의 맨 마지막 요소를 돌려주고 그 요소는 삭제
-
ex)
a = [1,2,3]
a.pop() # 리스트의 맨 마지막 요소 돌려줌
# => 3
a
# => [1, 2]
# -> 돌려준 맨 마지막 요소 삭제
Stack(스택)
Author And Source
이 문제에 관하여(DataStructure Fundamental), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@monzheld/DataStructure-Fundamental저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)