Data Structure
-
Python으로 구현하는 Linked List (3) 양방향 Linked ListData Structure 2022. 9. 7. 02:04
https://uding.tistory.com/106?category=995002 Python으로 구현하는 Linked List (2) 단방향 Linked List https://uding.tistory.com/105 Python으로 구현하는 Linked List (1) 간단한 단방향 Linked List Linked List란? Linked List는 링크를 통해 데이터들이 시퀀 형태로 연결된 것임 링크는 일종의 포인터로 각 데이.. uding.tistory.com 이전의 단방향 연결 리스트를 개선한 양방향 연결 리스트를 구현해보자. 양방향 연결 리스트는 말 그대로 앞으로 or 뒤로 이동할 수 있다. 개선된 노드는 아래 그림과 같이 prev & next 링크를 가지고 있는 형태이다. class Node..
-
Python으로 구현하는 Linked List (2) 단방향 Linked ListData Structure 2022. 9. 6. 14:18
https://uding.tistory.com/105 Python으로 구현하는 Linked List (1) 간단한 단방향 Linked List Linked List란? Linked List는 링크를 통해 데이터들이 시퀀 형태로 연결된 것임 링크는 일종의 포인터로 각 데이터를 다른 데이터와 연결함 node는 링크드 리스트의 구성하는 자료로 데이터와 링크(포 uding.tistory.com 이전의 간단한 단방향 연결 리스트를 개선한 연결 리스트를 구현해보자 linked list는 삽입과 삭제가 유연하다는 장점이 있으므로 이러한 장점을 살리기 위해 insertAfter(prev, newNode) 및 popAfter(prev)와 같은 메소드를 구현한다. 이전과는 다르게 pos(위치) 정보를 이용하는 것이 아닌 ..
-
Python으로 구현하는 Linked List (1) 간단한 단방향 Linked ListData Structure 2022. 8. 31. 21:37
Linked List란? Linked List는 링크를 통해 데이터들이 시퀀 형태로 연결된 것임 링크는 일종의 포인터로 각 데이터를 다른 데이터와 연결함 node는 링크드 리스트의 구성하는 자료로 데이터와 링크(포인터)로 구성됨 단방향을 가지는 singly Linked List와 양방향을 가지는 doubly Linked List로 구성됨 Linked List 구현하기 1. 간단한 단방향 Linked List 먼저 노드(node)는 데이터와 링크(next)로 구성되며 class로 구현한다. class Node: def __init__(self, item): self.data = item self.next = None Linked List는 노드들이 시퀀스로 연결된 것으로 class로 구현한다. Linked..
-
Python으로 Linked List 간단히 구현하기Data Structure 2022. 8. 29. 20:36
링크드 리스트 Abstract Data Type 노드가 포함하는 내용과 다른 노드에 대한 link에 대한 정보를 포함하는 노드의 집합 단일 방향을 가지는 singly linked list & 양방향을 가지는 doubly linked list 링크드 리스트의 장점 array 혹은 list에 비해 linked list의 장점은 다른 모든 items의 index를 변경할 필요없이 요소를 쉽게 삽입 및 제거할 수 있음 linked list를 저장하기 위해 사용되는 메모리를 재구성할 필요가 없음. 왜냐하면 데이터를 연속적으로 저장할 필요가 없기 때문 linked list는 다음과 같은 경우 유용함 다른 items 사이에 items을 쉽게 삽입하려는 경우 전체 collection 크기를 모르는 경우 items을 찾..
-
[Data Structure] DFS vs BFS with PythonData Structure 2022. 2. 23. 00:41
아래 글을 보고 공부한 후 정리, 번역한 글입니다. Reference https://medium.com/nothingaholic/depth-first-search-vs-breadth-first-search-in-python-81521caa8f44 Depth-First Search vs. Breadth-First Search in Python The simplified explanation of the two traversals algorithm. medium.com 1. Tree traversal 트리 순회는 노드를 반복하지 않고 정확히 한 번 각 노드를 checking(visiting)하거나 업데이트하는 것으로 알려져 있음 모든 노드는 간선을 통해 연결되어 있기 때문에 항상 root 노드부터 시작함 =..
-
기초 자료 구조Data Structure 2022. 2. 6. 19:28
Reference 이것이 코딩 테스트다 with 파이썬 스택 선입후출, 후입선출 stack = [] stack.append(3) # 3 stack.append(5) # 3 5 stack.append(7) # 3 5 7 stack.pop() # 3 5 stack.append(4) # 3 5 4 stack.pop() # 3 5 큐 선입선출 재귀 함수 자기 자신을 다시 호출하는 함수 factorial 계산할 때 Graph 그래프는 노드(Node), 간선(Edge) 이 때 노드를 정점(Vertex)라고도 함 두 노드가 간선으로 연결되어 있다면 '두 노드는 입접하다(adgacent)'라고 표현 프로그래밍에서 그래프틑 크게 2가지 방식으로 표현할 수 있음 인접 행렬(adjacency matrix): 2차원 배열로 ..