목록을 사용하여 Deque 구현
문제 설명: 목록을 사용하여 모든 함수를 포함하는 Deque를 만듭니다.
A Deque is a double ended queue, where elements can be added from both the ends of the queue.
구현할 기능
테스트 용례
아들레르
addFront
돌아오다
전선으로 나가다
후방 삭제
프런트엔드 삭제
창고가 비다
isEmpty는 비어 있지 않은 데이터에서 -->True입니다.
나는 빈 deque-->False에서 비어 있다.
크기
비어 있지 않은 데이터의 크기 -->없음.
크기는 빈 deque --> 값에 따라 달라집니다.
계산법
아들레르
addFront
돌아오다
전선으로 나가다
후방 삭제
프런트엔드 삭제
창고가 비다
크기
시공의 복잡성
addFront
아들레르
전선으로 나가다
돌아오다
프런트엔드 삭제
후방 삭제
창고가 비다
크기
비밀 번호
class Deque(object):
def __init__(self):
self.deque = []
def isEmpty(self):
return self.deque == []
def addRear(self, data):
self.deque.insert(0, data)
def addFront(self, data):
self.deque.append(data)
def getRear(self):
if self.isEmpty():
return None
return self.deque[0]
def getFront(self):
if self.isEmpty():
return None
return self.deque[-1]
def removeRear(self):
if self.isEmpty():
return None
return self.deque.pop(0)
def removeFront(self):
if self.isEmpty():
return None
return self.deque.pop()
def size(self):
return len(self.deque)
단원 테스트
import unittest
from deque import Deque
class TestDeque(unittest.TestCase):
def testDeque(self):
print('Test: Empty Deque')
deque = Deque()
self.assertEqual(deque.size(), 0)
self.assertEqual(deque.getFront(), None)
self.assertEqual(deque.getRear(), None)
self.assertEqual(deque.removeFront(), None)
self.assertEqual(deque.removeRear(), None)
self.assertEqual(deque.isEmpty(), True)
print('Test: One element')
deque = Deque()
deque.addFront(5)
self.assertEqual(deque.size(), 1)
self.assertEqual(deque.getFront(), 5)
self.assertEqual(deque.removeFront(), 5)
self.assertEqual(deque.isEmpty(), True)
deque.addRear(5)
self.assertEqual(deque.isEmpty(), False)
self.assertEqual(deque.size(), 1)
self.assertEqual(deque.getRear(), 5)
self.assertEqual(deque.removeRear(), 5)
self.assertEqual(deque.isEmpty(), True)
print('Test: Multiple elements')
deque = Deque()
deque.addFront(1)
deque.addRear(3)
deque.addFront(2)
deque.addRear(4)
self.assertEqual(deque.size(), 4)
self.assertEqual(deque.getFront(), 2)
self.assertEqual(deque.removeFront(), 2)
self.assertEqual(deque.size(), 3)
self.assertEqual(deque.removeRear(), 4)
self.assertEqual(deque.getRear(), 3)
self.assertEqual(deque.size(), 2)
self.assertEqual(deque.isEmpty(), False)
self.assertEqual(deque.removeFront(), 1)
self.assertEqual(deque.removeRear(), 3)
self.assertEqual(deque.isEmpty(), True)
print('Success: testDeque')
def main():
test = TestDeque()
test.testDeque()
if __name__ == "__main__":
main()
Github repo 해피 코딩!!!
Reference
이 문제에 관하여(목록을 사용하여 Deque 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/codewithml/implement-a-deque-using-a-list-in-python-4bi0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)