Stack

7876 ワード


1.Stackメソッド

  • size():現在のスタックのデータ数を取得
  • isEmpty():現在のスタックが空(size()=0?
  • push(x):スタックにデータ要素xを追加
  • pop():スタックに最新に格納されているデータ要素を削除(すなわち、戻る)
  • peek():スタックに最新に格納されているデータ要素を参照(戻す)するが、削除しない
  • 2.Python listで実施

    class ArrayStack:
    
        def __init__(self):
            self.data = []
        
        def __repr__(self):
            return self.data.__repr__()
        
        def size(self):
            return len(self.data)
    
        def isEmpty(self):
            return self.size() == 0
    
        def push(self, item):
            self.data.append(item)
    
        def pop(self):
            return self.data.pop()
    
        def peek(self):
            return self.data[-1]

    3.Doubly Linked Listで実施

    
    from doubly_linked_list import*
    
    class LinkedListStack:
    
        def __init__(self):
            self.data = DoublyLinkedList()
            
        def __repr__(self):
            return self.data.__repr__()
    
        def size(self):
            return len(self.data)
    
        def isEmpty(self):
            return self.size() == 0
    
        def push(self, item):
            node = Node(item)
            self.data.insertAt(self.size(), node)
    
        def pop(self):
            return self.data.popAt(self.size()-1)
    
        def peek(self):
            return self.data[self.size()-1].data
    ソースコード:stack.py