본문 바로가기
  • 紹睿: 자유롭고 더불어 사는 가치있는 삶

Data67

[Binary Tree] 이진트리(2) - pre order, in order, post order 이진트리의 삽입과 삭제는 [Binary Tree] 이진트리(1)에 있다 오늘은 Pre order, In oder, Post order에 대하여 알아보자! 예전에 정보처리기사와 수업을 들으면서 Pre = PLR IN = LPR Post = LRP P(parent), L(left), R(right)순이라고 그냥 외웠었다. class BinaryTree: def preorder(self): if self.head != None: self.__preorder(self.head) def __preorder(self, cur): self.preorder_list.append(cur.val) if cur.left != None: self._preorder(cur.left) if cur.right != None: se.. 2018. 9. 24.
[Binary Tree] 이진트리 (1) - 삽입, 삭제 Binary Tree 이진트리 무슨 코드든 차분히, 차근차근 한단계씩 밟고 지나가면 이해할 수 있다. BinaryTree()를 하면, head = Node(None) 다음과 같은 아이들이 생성된다. 1. add: val의 값을 비교해 left, right에 넣어주기 2. search: 있으면 True, 없으면 False 3. remove: 복잡복잡한듯 값이 head.val이면 자식 (left, right)를 조사하고 해당 조건에 따라 처리 아니면, head.val의 값과 비교하여 작으면 left, 크면 right로 가서 반복처리 class Node: def __init__(self, item): self.val = item self.left = None self.right = None class Bina.. 2018. 9. 24.
[heap sort] 힙 힙 힙! Heap tree parent 와 child로 이루어진 구조 heapify: 트리를 heap 트리로 바꾸는 과정 siftdown: (max) heap에서는 parent가 child보다 크면 된다 1단계만 실제로 보자면 root(6)의 right child(4)에서는 child와 비교헀을때, 8이 가장 크기 때문에 8과 4를 swap해준다. 이러한 과정을 거치면 아래와 같이 된다. [6, 2, 4, 9, 7, 5, 8] [6, 2, 8, 0, 7, 5, 4] [6, 9, 8, 2, 7, 5, 4] [9, 7, 7, 2, 6, 5, 4] (max) heap에서는 가장 큰 값만 뽑으면 되기 때문에, 8, 5, 4의 경우 더이상 순회 하지 않는다. def heapsort(a): def swap(a, i, j):.. 2018. 9. 24.
[Linked list] Linked list 코드 linked list linked list는 이런 노드가 연결 되어있다. class Node: def __init__(self, item): self.val = item self.next = None class LinkedList: def __init__(self, item): self.head = Node(item) def add(self, item): cur = self.head while cur.next != None: cur = cur.next cur.next = Node(item) def remove(self, item): if self.head.val == item: self.head = self.head.next else: cur = self.head while cur.next != None.. 2018. 9. 24.
[큐와 스택] queue와 stack Queue class Queue: def __init__(self): self.items = [] def enqueue(self, item): self.items.insert(0, item) def dequeue(self): self.items.pop() def print(self): print(self.items) def size(self): return len(self.items) def clear(self): return self.items == []​ FIFO 구조로, 롤에서도 등장한다(?) 큐잡혔다!!!!!! "먼저 줄을 선 사람이 먼저 나가도록 하는 것" 만약에 먼저 큐를 돌렸는데, 다른사람이 잡힌다고 해봐라 얼마나 열받는가 ㅂㄷㅂㄷ.. queue는 enqueue와 dequeue를 이용하여 구.. 2018. 9. 24.
[python] jupyter notebook 코드를 tistory에 올리는 법. tistory에 jupyter note HTML을 올리고 싶다면, 외부컨텐츠를 클릭하여, html 소스코드를 넣으면된다. 글 안에 html 파일 내용이 다 들어가게 하기 위해서는 아래와 같이 jupyter notebook에 실행시키면 된다. from IPython.core.display import display, HTML display(HTML("")) 따로, font-family, size등 style 쪽에 가면 수정도 가능하다.. 2018. 9. 16.