ksw_devlog
TIL 3주 4일차 본문
클래스란? 클래스는 분류. 집합. 같은 속성과 기능을 가진 객체를 총칭하는 개념입니다
객체는 세상에 존재하는 유일무이한 사물입니다
즉, 예를 들면 클래스가 사람이라면, 객체는 유재석이 될수도 있고, 박명수가 될 수도 있습니다. 클래스가 동물이라면, 객체는 강아지가 될수도 있고, 고양이가 될 수도 있습니다. 이처럼, 클래스를 이용하면 같은 속성과 기능을 가진 객체들을 묶어서 정의할 수 있습니다! 아래처럼요!
class Person:
pass # 여기서 pass 는 안에 아무런 내용이 없다는 의미입니다!
person_1 = Person()
print(person_1) # <__main__.Person object at 0x1090c76d0>
person_2 = Person()
print(person_2) # <__main__.Person object at 0x1034354f0>
--------------------------------------------------------------------------
class Person:
def __init__(self):
print("hihihi", self)
person_1 = Person() # hihihi <__main__.Person object at 0x1067e6d60> 이 출력됩니다!
person_2 = Person() # hihihi <__main__.Person object at 0x106851550> 이 출력됩니다!
[링크드 리스트 구현]
링크드 리스트 append 함수 만들기
train_compartments = ["기관실"] -> ["시멘트"] -> ["자갈"] -> ["밀가루"] -> ["우편"]
링크드 리스트는 이렇게 생겼습니다! 노드는 아래 두 가지 정보가 필요합니다. 1) 칸에 있는 데이터 2) 다음 칸이 뭔지 엇, 그러면 두 가지 데이터를 가지고 있어야 하니까 클래스를 이용하면 되겠군요! 한 번, 클래스로 묶어보겠습니다! 우선 클래스의 생성자에 data 를 인자로 받아서 self.data 에 저장합니다! 그리고, 현재는 다음 이어진 노드가 없기 때문에 self.next 에는 None 을 넣어두면 됩니다! 다음처럼요!
class Node:
def __init__(self, data):
self.data = data
self.next = None
# 3을 가진 Node 를 만드려면 아래와 같이 하면 됩니다!
node = Node(3) # 현재는 next 가 없이 하나의 노드만 있습니다. [3]
first_node = Node(5) # 현재는 next 가 없이 하나의 노드만 있습니다. [5]
second_node = Node(12) # [12] 를 들고 있는 노드를 만듭니다.
first_node.next = second_node # 그리고, [5]의 next 를 [12]로 지정합니다. [5] -> [12]
class LinkedList:
def __init__(self, value):
self.head = Node(value) # head 에 시작하는 Node 를 연결합니다.
linked_list = LinkedList(5)
print(linked_list.head.data) # 5가 출력됩니다!
# 현재 LinkedList 는 (5) 만 존재합니다!
class LinkedList:
def __init__(self, value):
self.head = Node(value) # head 에 시작하는 Node 를 연결합니다.
def append(self, value): # LinkedList 가장 끝에 있는 노드에 새로운 노드를 연결합니다.
cur = self.head
while cur.next is not None: # cur의 다음이 끝에 갈 때까지 이동합니다.
cur = cur.next
cur.next = Node(value)
linked_list = LinkedList(5)
linked_list.append(12)
# 이렇게 되면 5 -> 12 형태로 노드를 연결한 겁니다!
linked_list.append(8)
# 이렇게 되면 5 -> 12 -> 8 형태로 노드를 연결한 겁니다!
'TIL' 카테고리의 다른 글
TIL 4주 2일차 (0) | 2022.11.23 |
---|---|
TIL 3주 5일차 (0) | 2022.11.18 |
TIL 3주 3일차 (0) | 2022.11.16 |
TIL 3주 2일차 (0) | 2022.11.15 |
TIL 3주 1일차 (0) | 2022.11.14 |