본문 바로가기

자료구조4

[자료구조] 링크드 리스트(linked list) 👨🏻‍🏫 fastcampus 알고리즘/기술면접 완전 정복 올인원 패키지 - 이준희 강사님 1. 구조 연결 리스트 어떤 데이터를 저장할 때 그 다음 순서의 자료가 있는 위치를 데이터에 포함시키는 방식으로 자료를 저장 링크드 리스트는 떨어진 곳에 존재하는 데이터를 화살표로 연결해서 관리하는 데이터 구현 리스트 타입이 링크드 리스트의 기능 지원 기본 구조와 용어 노드(Node) : 데이터 저장 단위 (데이터 값, 포인터)로 구성 포인터(Pointer) : 각 노드 안에서, 다음이나 이전의 노드와의 연결 정보를 가지고 있는 공간 2. 장단점(전통적인 C언어에서의 배열과 링크드 리스트) 장점 미리 데이터 공간을 할당하지 않아도 됨 배열은 미리 데이터 공간을 할당 해야 함 단점 연결을 위한 별도 데이터 공간이 필요.. 2022. 9. 21.
[자료구조] 큐(queue) 파이썬으로 구현하기 Queue (선입선출) 큐는 먼저 들어온 자료가 가장 먼저 처리되는 자료구조 FIFO(First In First Out) 기반의 매우 유명한 자료 구조 순서 보장 큐(Queue)의 종류 1. Enqueue : 큐 맨 뒤에 어떠한 요소를 추가 예) 마지막으로 온 손님에게 번호표 발부 2. Dequeue : 큐 맨 앞쪽의 요소를 삭제 예) 창구에서 서비스를 받은 손님의 번호표를 대기목록에서 삭제 3. Peek : front에 위치한 데이터를 읽음 예) 다음 서비스를 받을 손님이 누구인지 확인 4. Front : 큐의 맨 앞의 위치(인덱스) 예) 다음 서비스를 받을 손님의 번호 5. Rear : 큐의 맨 뒤의 위치(인덱스) 예) 마지막에 온 손님의 번호 구현 # colab from collections im.. 2022. 4. 8.
[자료구조] 스택(stack) 파이썬으로 구현하기 stack (선입후출 or 후입선출) 스택은 가장 나중에 들어온 자료가 가장 먼저 처리되는 LIFO(Last-In-First-Out) 자료구조 사용법 1. push(삽입) : 아래 그림과 같이 데이터을 집어 넣는 것으로 먼저 들어온 값 차례대로 삽입 2. pop(삭제) : push와 반대로 값을 삭제 3. top(), peek(읽기, 확인) : 위치에 해당하는 데이터를 읽음, 값에 변화는 없음 구현 # colab # 값 추가하는 함수 생성 def push(stack, element): stack.append(element) # 맨 뒤부터 값을 빼는 함수 생성 def pop(stack): print(f'pop: {stack.pop()}') # 값을 확인하는 함수 def peek(stack): print(".. 2022. 4. 8.
[자료구조] 자료구조의 정의 & 분류 자료구조(Data Structure)란? 1. 자료구조는 컴퓨터 과학에서 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리, 저장을 의미 검색, 순회, 저장, 삭제, 변경 2. 자료를 담는 추상적인 틀 3. 데이터의 형태와 쓰임에 가장 적합한 자료구조를 쓰는 것은 매우 중요 자료 구조 분류 구현에 따라 배열 : 가장 일반적인 구조, 메모리 상에 같은 타입 자료가 연속적으로 저장 튜플 : 둘 이상의 자료형을 묶음으로 다루는 구조 연결 리스트 : 노드를 단위로 한다. 노드는 자료와 다음 노드를 가리키는 참조값으로 구성 원형 연결 리스트 : 각 노드는 다음 노드를 가리키고, 마지막 노드가 처음 노드를 가리킴 이중 연결 리스트 : 각 노드는 이전 노드와 다음 노드를 가리키는 참조값으로 구성된다. 처음 노.. 2022. 4. 8.