창고 와 대기 열 및 양단 대기 열

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())

좋은 웹페이지 즐겨찾기