Linked List

Ho Jin Lee·2023년 3월 20일
0

Linked List (연결 리스트)

특정 인덱스를 상수 시간에 접근 불가
N번째 원소를 찾는다 => N번 돌아야한다.
원소 추가/삭제 연산은 상수 시간에 가능.

C에서 배열 같은 경우 크기를 미리 지정해두기 대문에 데이터 추가 삭제 과정이 어렵지만, 파이썬의 경우에는 배열 이어붙이기, 중간 삽입,삭제가 가능하다.

단방향 연결 리스트 => 다음 요소만 가르킨다.
양방향 연결 리스트 => 다음과 이전 요소를 가르킨다.

class Node():
    def __init__(self,data):
        self.data=data
        self.next=None

class Singlelinkedlist():
    def __init__(self):
        self.head=None
        self.count=0
    def append(self,node):
        if not self.head:
            self.head=node
        else:
            temp=self.head
            while temp.next:
                temp=temp.next
            temp.next=node

    def print(self):
        node = self.head
        string = ""
        while node:
            print(node.data)
            node = node.next
if __name__ == "__main__":
    sl = Singlelinkedlist()
    sl.append(Node(1))
    sl.append(Node(2))
    sl.print()
profile
배 터져 죽을 때까지

0개의 댓글