Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
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 31
Tags
more
Archives
Today
Total
관리 메뉴

ksw_devlog

TIL 3주 4일차 본문

TIL

TIL 3주 4일차

kimcoach 2022. 11. 17. 22:30

클래스란?  클래스는 분류. 집합. 같은 속성과 기능을 가진 객체를 총칭하는 개념입니다

 

객체는 세상에 존재하는 유일무이한 사물입니다

 

즉, 예를 들면 클래스가 사람이라면, 객체는 유재석이 될수도 있고, 박명수가 될 수도 있습니다. 클래스가 동물이라면, 객체는 강아지가 될수도 있고, 고양이가 될 수도 있습니다. 이처럼, 클래스를 이용하면 같은 속성과 기능을 가진 객체들을 묶어서 정의할 수 있습니다! 아래처럼요!

 

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