Pythonでスタックとキュー

スタック

class Stack:
    def __init__(self, stack = None,max = 100):
        self.max = max
        if type(stack) is type([]):
            self.stack = stack
        elif stack is None:
            self.stack = []
        else:
            print('Please list type!\n')

    def push(self, e):
        if not self.is_full():
            self.stack.append(e)    
            return self.stack
        else:
            print('Stack is full!!\n')      

    def pop(self):
        if not self.is_empty():
            e = self.stack.pop()
            return (e, self.stack)
        else:
            print('Stack is empty!!\n')  


    def is_empty(self):
        if len(self.stack) is 0:
            return True
        else:
            return False

    def is_full(self):
        if len(self.stack) is self.max:
            return True
        else:
            return False        
        

キュー

 class Queue:
    def __init__(self, queue = None, max = 100):
        self.max = max
        if type(queue) is type([]):
            self.queue = queue
        elif queue is None:
            self.queue = []
        else:
            print('Please enter list type!\n')

    def enqueue(self, e):
        if not self.is_full():
            self.queue.append(e)   
            return self.queue
        else:
            print('Queue is full!!\n') 

    def dequeue(self):
        if not self.is_empty():
            e = self.queue[0]     
            del self.queue[0]     
            return (e, self.queue)  
        else:
            print('Queue is empty!!\n')

    def is_empty(self):
        if len(self.queue) is 0:
            return True
        else:
            return False

    def is_full(self):
        if len(self.queue) is self.max:
            return True
        else:
            return False