창고 와 대기 열 및 양단 대기 열
17240 단어 데이터 구조
스 택 은 한 끝 에서 만 조작 할 수 있 기 때문에 후진 선 출 즉 LIFO 는 순서 표 로 이 루어 질 수 있 고 링크 로 다음 과 같은 순서 표 로 이 루어 진 코드 를 실현 할 수 있 습 니 다.
# coding:utf-8
class Stack(object):
""" """
def __init__(self):
self.__list = []
def push(self, item):
""" item """
self.__list.append(item)
def pop(self):
""" """
return self.__list.pop()
def peek(self):
""" """
if self.__list:
return self.__list[-1]
else:
return None
def is_empty(self):
""" """
return self.__list == []
# return not self.__list
def size(self):
""" """
return len(self.__list)
if __name__ == "__main__":
s = Stack()
s.push(1)
s.push(2)
s.push(3)
s.push(4)
print(s.pop())
print(s.pop())
print(s.pop())
print(s.pop())
대기 열 은 한 끝 에 만 삽입 작업 을 허용 하고 다른 단락 에 서 는 삭제 작업 을 할 수 있 기 때문에 먼저 FIFO 를 시작 합 니 다.
# coding:utf-8
class Queue(object):
""" """
def __init__(self):
self.__list = []
def enqueue(self, item):
""" item """
self.__list.append(item)
def dequeue(self):
""" """
return self.__list.pop(0)
def is_empty(self):
""" """
return self.__list == []
def size(self):
""" """
return len(self.__list)
if __name__ == "__main__":
s = Queue()
s.enqueue(1)
s.enqueue(2)
s.enqueue(3)
s.enqueue(4)
print(s.dequeue())
print(s.dequeue())
print(s.dequeue())
print(s.dequeue())
2 단 대기 열 은 두 개의 스 택 에 해당 합 니 다.
class Deque(object):
""" """
def __init__(self):
self.__list = []
def add_front(self, item):
""" item """
self.__list.insert(0, item)
def add_rear(self, item):
""" item """
self.__list.append(item)
def pop_front(self):
""" """
return self.__list.pop(0)
def pop_rear(self):
""" """
return self.__list.pop()
def is_empty(self):
""" """
return self.__list == []
def size(self):
""" """
return len(self.__list)
if __name__ == "__main__":
s = Queue()
s.enqueue(1)
s.enqueue(2)
s.enqueue(3)
s.enqueue(4)
print(s.dequeue())
print(s.dequeue())
print(s.dequeue())
print(s.dequeue())