Computer Science/자료구조

자료구조 | Deque Double Ended Queue | Linked List

토마토. 2021. 12. 29. 21:42

자료구조 | Singly Linked List | Linked List (tistory.com)

 

자료구조 | Singly Linked List | Linked List

singly Linked List가 동작하기 위해 필요한 클래스 링크드 리스트는 노드로 구성된다. 노드는 노드 자신의 data와 다른 노드와 연결되는 link로 구성된다. 단방향으로만 연결해주는 리스트 형태를 Singl

tomatolife.tistory.com


위 글에서 Singly Linked List 클래스 내부 함수를 활용하였다. 

 

Double Ended Queue
• add_front
• add_rear
• pop_front
• pop_rear

import random
class Node:
    def __init__(self, item):
        self.data = item
        self.link = None

class SLL:
    def __init__(self):
        self.head = None
        self.rear = None
        self.count = 0
    def isEmpty(self):
        return self.head == None
    def addFront(self, node):
        tmp = self.head
        self.head = node
        node.link = tmp
        if self.count == 0:
            self.rear = self.head
        self.count += 1
    def addRear(self, node):
        tmp = self.rear
        self.rear = node
        self.rear.link = tmp
        if self.count == 0:
            self.head = self.rear
        self.count += 1
    def popFront(self):
        tmp = self.head.data
        self.head = self.head.link
        self.count -= 1
        return tmp
    def popRear(self):
        tmp = self.rear.data
        del tmp
        self.count -= 1
        return tmp
    def print(self):
        tmp = self.head
        while True:
            if tmp == None:
                break
            else:
                print(tmp.data)
                tmp = tmp.link
s = SLL()
for i in range(10):
    tmp = Node(i*100)
    s.addFront(tmp)
    
s.print()