카테고리 없음

링크드 리스트(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