ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 링크드 리스트(Linked list) - 자료구조, 파이썬(python)
    카테고리 없음 2019. 2. 1. 14:46

    views


    node와 node사이의 연결을 이용해 데이터를 엮어내는 자료구조입니다. node를 정의하고 node.next를 정의해 다음에 올 node를 node.next에 담아 엮는 것입니다.


    저는 오름차순으로 숫자를 추가하는 add 메서드, 링크드 리스트에 있는 노드를 조회하는 desc메서드, 원하는 노드를 삭제하는 delete 메서드를 구현 했습니다.


    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    class Node:
        def __init__(self, data):
            self.data = data
            self.next = None
     
    class NodeMgmt:
        def __init__(self, data):
            self.head = Node(data)
     
        def add(self,data):
            if self.head == '':
                self.head = Node(data)
            else:
                node = self.head
                while node.next:
                    node = node.next
                if node.data < data:
                    node.next = Node(data)
                else:
                    node = self.head
                    while node.next.data < data:
                        node = node.next
                    temp = node.next
                    new = Node(data)
                    new.next = temp
                    node.next = new
                    del temp
     
        def desc(self):
            node = self.head
            while node:
                print(node.data)
                node = node.next
        
        def delete(self, data):
            if self.head == '':
                print('해당 값을 가진 노드가 없습니다')
                return False
            if self.head.data == data:
                
                self.head = self.head.next
                
            else:
                node = self.head
                while node.next:
                    if node.next.data == data:
                        
                        node.next = node.next.next
                        
                    else:
                        node = node.next
    cs


Designed by Tistory.