본문 바로가기
tree tree tree 는 일반적으로 대상 정보들의 각 항목들을 계층적으로 연결하여 구조화 시키고자 할 때 사용하는 비선형 자료구조이다. graph 의 한 종류로, node 들의 집합으로 이루어져있다. 노드는 데이터를 가지고 있는 트리 구조의 교점을 의미한다. 각 노드들은 단순한 나열이 아닌 부모-자식 관계의 계층적 구조로 표현되어 있으며, 서로 다른 자식을 가진다. binary tree 이진트리는 최대 차수가 2인 트리를 말한다. 하나의 노드에 left or right 방향으로 하나의 자식 노드만이 존재한다. 아래의 이미지처럼 한 쪽으로 편향된 이진트리의 유형을 편향 이진트리 라고 한다. 편향 이진 트리는 가장 끝의 leaf node 를 탐색할 경우 이전의 노드들을 전부 읽어야 한다는 단점이 있어서 다소 효.. 2021. 4. 27.
dictionary & hash dictionary set 와 마찬가지로 순서대로 데이터를 보관하지 않는다. 다만 key-value 의 형태로 이루어져있기 때문에 key 를 통하여 원하는 값을 출력할 수 있다. set 처럼 key 를 해시값으로 저장하기 때문에 key 는 중복될 수 없다. 중첩하여 사용할수도 있다. # dictionary create 1 # 데이터가 주어지거나 딕셔너리의 내용이 고정되어 있는 경우 사용된다 dictionary1 = {'name':['Ryan','Lee'], 'job':'sw engineer', 'address': {'city':'seoul', 'zip_code':'1234'} } # dictionary create 2 # 변수를 선언해놓고 데이터 베이스를 조회해서 필요한 정보를 동적으로 채워야 할때 사용.. 2021. 4. 27.
stack & queue stack LIFO (Last In First Out). 마지막으로 들어온 데이터가 가장 먼저 나가는 방식 python 으로 간단한 stack 예제를 만들어보자. class Stack: def __init__(self): self.state = [] def push(self, data): self.state.append(data) def pop(self): # 하나씩 꺼내고 꺼낸 값을 리턴한다. return self.state.pop() def getPeak(self): # 스택의 최상위 값을 리턴한다. return self.state[-1] def empty(self): if len(self.state) == 0: return True return False st = Stack() st.push(1) .. 2021. 4. 27.
array & tuple & set data structure 자료구조란 데이터에 편리하게 접근하고 조작하기 위해 데이터를 저장하거나 조직하는 방법을 의미한다. 어떤 자료구조를 사용할지는 전체 개발 시스템에 큰 영향을 끼칠 수 있으므로, 상황과 문맥에 맞는 적절한 구조를 사용해야 한다. array array 의 가장 큰 특징은 순차적으로 데이터를 저장한다는 점이다. 순서가 있다보니 index 를 지정할 수 있다는 장점이 있으나, 반면에 정보가 삭제되거나 추가되는 경우 index 값이 수시로 변경될 수 있으므로 정보가 자주 변경되는 상황에서 사용하기에는 적절하지 않다. resizing 배열이 생성될 때, 컴퓨터는 배열에 대해 어느 정도의 메모리를 미리 할당해준다. 이를 사전할당(pre-allocation) 이라고 한다. 메모리를 사전 할당 .. 2021. 4. 27.