zoukankan      html  css  js  c++  java
  • 数据结构之队列(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
  • 相关阅读:
    树状数组
    LCA最近公共祖先
    ordered_set
    马拉车算法
    数论
    图论
    其他
    线段树
    序列自动机
    优先队列
  • 原文地址:https://www.cnblogs.com/zlsgh/p/9583669.html
Copyright © 2011-2022 走看看