양방향 데큐

박진은·2022년 5월 5일
0

자료구조

목록 보기
10/37

양방향 데큐

class decQueue:

    def __init__(self):
        self.decQueueSize = 10
        self.list = [None] * 10
        self.front = 0
        self.rear = 0

    def isEmpty(self):
        return self.front == self.rear

    def isFull(self):
        return self.front == (self.rear + 1) % self.decQueueSize

    def addFront(self, item):

        if not self.isFull():
            self.list[self.front] = item
            self.front = (self.front - 1 + self.decQueueSize) % self.decQueueSize

    def deleteFront(self):

        if self.isEmpty == False:
            out = self.list[self.front + 1]
            self.front = (self.front + 1) % self.decQueueSize
            return out

    def getFront(self):
        if self.isEmpty() == False:
            return self.list[(self.front - 1 + self.decQueueSize) % self.decQueueSize] 오류 --- 진은아 이거 틀렸다

    def addRear(self, item):
        result = self.isFull() == False
        if result:
            self.rear = (self.rear + 1) % self.decQueueSize
            self.list[self.rear] = item

    def deleteRear(self):
        if self.isEmpty == False:
            out = self.list[self.rear]
            self.rear = (self.rear - 1 + self.decQueueSize) % self.decQueueSize
            return out

    def getRear(self):
        if self.isEmpty() == False:
            return self.list[self.rear]

    def size(self):
        return (self.rear - self.front + self.decQueueSize) % self.decQueueSize

    def display(self):
        if self.front > self.rear:
            print(self.list[self.front + 1: self.decQueueSize] + self.list[0:self.rear + 1])
        else:
            print(self.list[self.front + 1:self.rear + 1])

    def clear(self):
        self.list = []

dp = decQueue()
for i in range(9):
    if i % 2 == 0:
        dp.addRear(i)
    else:
        dp.addFront(i)
print(dp.list)
dp.display()
def addFront(self, item):

        if not self.isFull():
            self.list[self.front] = item
            self.front = (self.front - 1 + self.decQueueSize) % self.decQueueSize

오늘 태어나서 처음으로 게슈탈트 붕괴현상을 경험했다 이건 진짜 존나 오바참치적이게 될수도 있으니까

위에 함수 구현하는데 3시간동안 디버깅을 했는데 구현이 안되는거다 그 이유가 뭐였냐면 위에 코드에서

self.isFull() 을 사용했는데 내가 저걸 그냥 ()를 안써서 계속 컴파일오류는 발생하지않고 존나 몰랐다 근데 이정도 실수는 컴파일러가 충분히 잡아줄 수 있었다고 생각한다.

profile
코딩

0개의 댓글