본문 바로가기

전체 글45

자료구조 : 트리(Tree) 트리(Tree) 구조 트리 : 노드(Node)와 Branch를 이용해서 사이클을 이루지 않도록 구성한 데이터 구조 이진트리(Binary Tree) 형태의 구조이며 검색(탐색) 알고리즘 구현을 위해 사용됨 용어 Node : 트리에서 데이터를 저장하는 기본요소 Root Node : 트리 맨 위에 있는 노드 Level : 최상위 노드를 Level 0으로 하였을 때, 하위 Branch로 연결된 노드의 깊이를 나타냄 Parent Node : 어떤 노드의 다음 레벨에 연결된 노드 Child Node : 어떤 노드의 상위 레벨에 연결된 노드 Leaf Node : Child Node가 하나도 없는 노드 Sibling (Brother Node) : 동일한 Parent Node를 가진 노드 Depth : 트리에서 Node.. 2021. 8. 14.
자료구조 : 해쉬 테이블(Hash Table) 해쉬 구조 Key(키)에 Value(데이터)를 저장하는 데이터 구조 Key를 통해 바로 데이터를 받을 수 있음, 속도가 빨라짐 공간과 탐색 시간끼리 서로 바꾸는 기법. 일반적으로 배열에서 미리 Hash Table사이즈만큼 생성 후 사용 단어 해쉬(Hash) : 임의 값을 고정 길이로 변환하는 것 해쉬 테이블(Hash Table) : 키 값의 연산에 의해 직접 접근이 가능한 데이터 구조 해싱 함수(Hashing Function) : Key에 대해 산술 연산을 이용해 데이터 위치를 찾을 수 있는 함수 해쉬 값(Hash Value) : Key를 해싱 함수로 연산하여 해쉬 값을 알아내고 이를 기반으로 해쉬 테이블에서 해당 Key에 대한 데이터 위치를 일관성있게 찾을 수 있음 슬롯(Slot) : 한 개의 데이터를.. 2021. 8. 12.
자료구조 : 링크드 리스트 (Linked List) 링크드 리스트(Linked List) 구조 떨어진 곳에 존재하는 데이터를 화살표로 연결해서 관리하는 데이터 구조 노드(Node) : 데이터 저장 단위인 데이터값, 포인터로 구성 포인터(Pointer) : 각 노드 안에서, 다음이나 이전의 노드와의 연결 정보를 가지고 있는 공간 링크드 리스트(Linked List) 형태 Node 구현 class Node: def __init__(self, data): self.data = data self.next = None class Node: def __init__(self, data, next=None): self.data = data self.next = next Node와 Node 연결 (포인터 활용) node1 = Node(1) node2 = Node(2) n.. 2021. 8. 10.
자료구조 : 스택(Stack) 스택 구조 LIFO(Last In, First Out) 또는 FILO(First In, Last Out) 데이터 관리 방식을 따름 - LIFO : 마지막에 넣은 데이터를 가장 먼저 추출하는 데이터 관리 정책 - FILO : 처음에 넣은 데이터를 가장 마지막에 추출하는 데이터 관리 정책 주요 기능 push() : 데이터를 스택에 넣음 pop() : 데이터를 스택에서 꺼냄 엑셀로 push와 pop을 만들어 보았다. 비유를 하자면 책을 쌓을 때 마지막에 올린책을 가장 처음에 꺼낼 수 있다. 스택 장단점 장점 : 구조가 단순하고 구현이 쉬우며 데이터저장과 읽기 속도가 빠름 단점 : 데이터의 최대 개수를 미리 정해야 함 파이썬 메서드로 스택 사용 data_stack = list() data_stack.append.. 2021. 7. 29.