일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- python
- 학점은행제무료강의
- 맥북환경설정
- MSA
- 디렉토리계층구조
- 채널계
- union
- 맥북
- 렌탈스튜디오창업
- 컴퓨터공학학사취득
- DB
- SQL
- 맥북셋팅
- 은행IT
- 모놀리식
- Pass By Value
- 코딩테스트
- 코어뱅킹
- Homebrew
- 오라클
- 학점은행제
- jdk17
- oracleapex
- 인강빨리듣기
- fastapi
- 개인프로필스튜디오창업
- 프로그래머스
- jdk
- it자격증
- 계정계
- Today
- Total
목록자료구조 (22)
개발머해니
def swap(tree, index_1, index_2): """완전 이진 트리의 노드 index_1과 노드 index_2의 위치를 바꿔준다""" temp = tree[index_1] tree[index_1] = tree[index_2] tree[index_2] = temp def heapify(tree, index, tree_size): """heapify 함수""" # 왼쪽 자식 노드의 인덱스와 오른쪽 자식 노드의 인덱스를 계산 left_child_index = 2 * index right_child_index = 2 * index + 1 largest = index # 일단 부모 노드의 값이 가장 크다고 설정 # 왼쪽 자식 노드의 값과 비교 if 0 < left_child_index < tree_..
def swap(tree, index_1, index_2): """완전 이진 트리의 노드 index_1과 노드 index_2의 위치를 바꿔준다""" temp = tree[index_1] tree[index_1] = tree[index_2] tree[index_2] = temp def heapify(tree, index, tree_size): """heapify 함수""" # 왼쪽 자식 노드의 인덱스와 오른쪽 자식 노드의 인덱스를 계산 left_child_index = 2 * index right_child_index = 2 * index + 1 largest = index # 일단 부모 노드의 값이 가장 크다고 설정 # 왼쪽 자식 노드의 값과 비교 if 0 < left_child_index < tree_..
class Node: """이진 트리 노드를 나타내는 클래스""" def __init__(self, data): """이진 트리 노드는 데이터와 두 자식 노드에 대한 레퍼런스를 갖는다""" self.data = data self.left_child = None self.right_child = None def traverse_inorder(node): """in-order 순회 함수""" if node is not None: traverse_inorder(node.left_child) print(node.data) traverse_inorder(node.right_child) # 여러 노드 인스턴스 생성 node_A = Node("A") node_B = Node("B") node_C = Node("C")..
def get_parent_index(complete_binary_tree, index): """배열로 구현한 완전 이진 트리에서 index번째 노드의 부모 노드의 인덱스를 리턴하는 함수""" parent_index = index // 2 # 부모 노드가 있으면 인덱스를 리턴한다 if 0 < parent_index < len(complete_binary_tree): return parent_index return None def get_left_child_index(complete_binary_tree, index): """배열로 구현한 완전 이진 트리에서 index번째 노드의 왼쪽 자식 노드의 인덱스를 리턴하는 함수""" left_child_index = 2 * index # 왼쪽 자식 노드가 있으면 ..
1. 새로운 노드를 생성합니다. 2. root 노드부터 데이터를 비교하면서 새로운 노드를 저장할 위치를 찾습니다. 3. 새로운 노드의 데이터가 더 크면, root 노드의 오른쪽 부분 트리에 저장돼야 하고더 작으면, root 노드의 왼쪽 부분 트리에 저장돼야 합니다. 4. 찾은 위치에 새로운 노드를 저장합니다 class Node: """이진 탐색 트리 노드 클래스""" def __init__(self, data): self.data = data self.parent = None self.right_child = None self.left_child = None def print_inorder(node): """주어진 노드를 in-order로 출력해주는 함수""" if node is not None: pri..
class Node: """링크드 리스트의 노드 클래스""" def __init__(self, data): self.data = data # 실제 노드가 저장하는 데이터 self.next = None # 다음 노드에 대한 레퍼런스 self.prev = None # 전 노드에 대한 레퍼런스 class LinkedList: """링크드 리스트 클래스""" def __init__(self): self.head = None # 링크드 리스트 가장 앞 노드 self.tail = None # 링크드 리스 가장 뒤 노드 def prepend(self, data): """링크드 리스트 가장 앞에 데이터를 추가시켜주는 메소드""" new_node = Node(data) if self.head is None: self.h..
class Node: """링크드 리스트의 노드 클래스""" def __init__(self, data): self.data = data # 실제 노드가 저장하는 데이터 self.next = None # 다음 노드에 대한 레퍼런스 self.prev = None # 전 노드에 대한 레퍼런스 class LinkedList: """링크드 리스트 클래스""" def __init__(self): self.head = None # 링크드 리스트의 가장 앞 노드 self.tail = None # 링크드 리스트의 가장 뒤 노드 def delete(self, node_to_delete): """더블리 링크드 리스트 삭제 연산 메소드""" if self.tail is self.head: self.tail = None se..
class Node: """링크드 리스트의 노드 클래스""" def __init__(self, data): self.data = data # 실제 노드가 저장하는 데이터 self.next = None # 다음 노드에 대한 레퍼런스 self.prev = None # 전 노드에 대한 레퍼런스 class LinkedList: """링크드 리스트 클래스""" def __init__(self): self.head = None # 링크드 리스트의 가장 앞 노드 self.tail = None # 링크드 리스트의 가장 뒤 노드 def insert_after(self, previous_node, data): """링크드 리스트 추가 연산 메소드""" new_node = Node(data) # 새로운 노드 생성 # tai..
class Node: """링크드 리스트의 노드 클래스""" def __init__(self, data): self.data = data # 실제 노드가 저장하는 데이터 self.next = None # 다음 노드에 대한 레퍼런스 class LinkedList: """링크드 리스트 클래스""" def __init__(self): self.head = None # 링크드 리스트의 가장 앞 노드 self.tail = None # 링크드 리스트의 가장 뒤 노드 def pop_left(self): """링크드 리스트의 가장 앞 노드 삭제 메소드. 단, 링크드 리스트에 항상 노드가 있다고 가정한다""" data = self.head.data # 삭제할 노드를 미리 저장해놓기 # 지우려는 데이터가 링크드 리스트의 ..
class Node: """링크드 리스트의 노드 클래스""" def __init__(self, data): self.data = data # 실제 노드가 저장하는 데이터 self.next = None # 다음 노드에 대한 레퍼런스 class LinkedList: """링크드 리스트 클래스""" def __init__(self): self.head = None # 링크드 리스트의 가장 앞 노드 self.tail = None # 링크드 리스트의 가장 뒤 노드 def prepend(self, data): """링크드 리스트의 가장 앞에 데이터 삽입""" new_node = Node(data) #새로운 노드 생성 #링크드 리스트가 비었는지 확인 if self.head is None: self.tail = new..