コード例 #1
0
ファイル: que_.py プロジェクト: Casey0Kane/data-structures
class Queue(object):
    """Create queue data structure."""
    def __init__(self):
        """Initalize a Queue."""
        self._que = Dll()

    def enqueue(self, val):
        """Add an item to the queue."""
        self._que.push(val)

    def dequeue(self):
        """Remove item from queue."""
        return self._que.shift()

    def peek(self):
        """Returns next value in queue without dequeueing it."""
        if self._que.tail is not None:
            return self._que.tail.value
        return None

    def size(self):
        """Get length of queue."""
        return self._que.__len__()
コード例 #2
0
class Deque(object):
    """Create deque data structure."""
    def __init__(self):
        """Initalize a Deque."""
        self._que = Dll()

    def append(self, val):
        """Add an item to the deque."""
        self._que.push(val)

    def appendleft(self, val):
        """Append value to the front of the deque."""
        self._que.append(val)

    def pop(self):
        """Pop value from end of the deque and returns it."""
        return self._que.pop()

    def popleft(self):
        """Pop value from front of the deque and return it."""
        return self._que.shift()

    def peek(self):
        """Return next value in deque without dequeueing it."""
        if self._que.head is not None:
            return self._que.head.value
        return None

    def peekleft(self):
        """Return value of popleft but leaves value in deque."""
        if self._que.tail is not None:
            return self._que.tail.value
        return None

    def size(self):
        """Get length of deque."""
        return self._que.__len__()