数据结构之队列(Python 版)

数据结构之队列(Python 版)

队列的特点:先进先出(FIFO)

  • 使用链表技术实现

    使用单链表技术,在表首尾两端分别加入指针,就很容易实现队列类。

  • 使用顺序表list实现 
 1 # 队列类的实现
 2 
 3 class SQueue() :
 4 
 5     def __init__(slef,init_len = 8) :
 6         self._len = init_len  # 存储区长度
 7         self._elems = [0] * init_le  # 元素存储
 8         self._head = 0  # 表头元素下标
 9         self._num = 0  # 元素个数
10 
11     def is_empty(self) :
12         return self._num == 0
13 
14     def peek(self) :  # 查看首元素
15         if self._num == 0 :
16             raise QueueUnderflow
17         return self._elems[self._head]
18 
19     def dequeue(self) :  # 出队
20         if self._num == 0 :
21             raise QueueUnderflow
22         e = self._elems[self._head]
23         self._head = (self._head + 1) % self._len
24         self._num -= 1
25         return e
26 
27     def enquene(self,e) :  # 入队
28         if self._num == self._len :
29             self.__extend()
30         slef._elems[(self._head + self._num) % self._len] = e
31         self._num += 1
32 
33     def __extenc() :  # 扩充元素表 个数*2
34         old_len = self._len
35         self._len *= 2
36         new_elems = [0] * self._len
37         for i in range[old_len] :
38             new_elems[i] = self._elems[(self._head + i) % old_len]
39         self._elems ,self._head = new_elems , 0

猜你喜欢

转载自www.cnblogs.com/zlsgh/p/9583669.html