class LinkedListQueue(QueueBase):
    '''
        数据结构--03--队列(基于链表LinkedList实现)
    '''
    def __init__(self):
        self._linked_list = LinkedList()

    def get_size(self):
        return self._linked_list.size

    def is_empty(self):
        return self._linked_list.is_empty()

    def enqueue(self, value):
        self._linked_list.add_last(value)

    def dequeue(self):
        return self._linked_list.remove_first()

    def get_front(self):
        return self._linked_list.get_first()
Exemplo n.º 2
0
class LinkedListStack(StackBase):
    '''
        数据结构--03--栈(基于LinkedList实现)
    '''
    def __init__(self):
        self._linked_list = LinkedList()

    def get_size(self):
        return self._linked_list.size

    def is_empty(self):
        return self._linked_list.is_empty()

    def push(self, value):
        self._linked_list.add_last(value)

    def pop(self):
        return self._linked_list.remove_last()

    def top(self):
        return self._linked_list.get_last()
Exemplo n.º 3
0
    def set(self, key, value):
        """
        新增資料
        新增資料前,先以key進行清除以免寫入重複資料
        以key的hash值作為表的index
        不存在該hash表的LinkedList則創建
        """
        hash_key = djb2_hash(key)

        self.remove(key)

        if self.map[hash_key] is None:
            self.map[hash_key] = LinkedList()

        self.map[hash_key].append(ValuePair(key, value))
Exemplo n.º 4
0
class LinkedListSet(SetBase):
    '''
        数据结构--06--集合Set(基于链表LinkedList实现)
    '''
    def __init__(self):
        self._list = LinkedList()

    def get_size(self):
        return self._list.get_size()

    def is_empty(self):
        return self._list.is_empty()

    def contains(self, value):
        return self._list.contains(value)

    def add(self, value):
        if self.contains(value):
            return
        self._list.add_first(value)

    def remove(self, value):
        self._list.remove_element(value)
Exemplo n.º 5
0
 def __init__(self):
     self._list = LinkedList()