LIST
# Que로 stack 구현
class Queue:
def __init__(self):
self.data = []
def push(self, value):
self.data.append(value)
def pop(self): # 처음 넣은 값 삭제,,
first_value = self.data.pop(0)
return first_value
def len(self):
return len(self.data)
class QueStack:
def __init__(self):
self.Queue1 = Queue()
self.Queue2 = Queue()
def push(self, value): # 값을 넣기.
self.Queue1.data.append(value)
def pop(self): # 값을 삭제하기 # 큐는 맨 처음 값부터 삭제한다.Queue1의 값들을 Queue2로 옮기기,
for i in range(self.Queue1.len()): # queue1의 길이만큼 반복하기
self.Queue2.data = [self.Queue1.pop()] + self.Queue2.data # Q2의 data는 que1의 데이터 + que2의 뎅터
first_value = self.Queue2.pop() # 첫번째 값은 마지막에 que2에 넣은 값
for i in range(self.Queue2.len()): # 다시 que1에 넣어주기
self.Queue1.data = [self.Queue2.pop()] + self.Queue1.data
return first_value # 첫번째값 출력하기
QS = QueStack()
QS.push(1)
QS.push(2)
QS.push(3)
QS.push(4)
print(QS.Queue1.data)
print(QS.pop())
print(QS.Queue1.data)
print(QS.Queue2.data)
반응형
LIST
'파이썬' 카테고리의 다른 글
2024 코딩 계획 (0) | 2023.12.25 |
---|---|
[자료구조] Array로 Linkedlist 구현하기_node 없음 (0) | 2023.05.24 |
[자료구조] Stack을 연결 리스트로 구현하기 (0) | 2023.05.14 |
[자료구조] Array로 Stack을 구현하기 (0) | 2023.05.14 |
[자료구조] Python으로 linked list 구현하기 (2) | 2023.05.02 |
댓글