[Introducción a los algoritmos y las estructuras de datos] Uso de matrices de Python para realizar la función de una cola

Implementar una cola

Descripción del título:

1. Usando una matriz para implementar una cola

  • Enqueue
  • Dequeue
  • Ver colas , elementos
  • Ver el tamaño de la cola

2. Operación de cola

  • Crear una nueva cola (llamada q1)
  • Coloque la matriz ls_1 por índice de pequeño a grande
  • Número de elementos en la cola de salida
  • Obtenga el primer elemento del equipo, guárdelo en la variable q1_gettop y observe el número de elementos en la pila
  • Haga estallar el elemento superior de la pila, guárdelo en la variable s1_poptop y observe el número de elementos en la pila.

Pronto

1. Cola

Inserte la descripción de la imagen aquí

Introduccion

  • Una estructura de datos común.
  • FIFO-primero en entrar, primero en salir: el elemento insertado primero sale primero

Nota

  • Utilice una matriz para implementar la cola. Después de la operación de retirada de la cola, no se utiliza la primera mitad del espacio de la matriz.

2. Finalización del código

class MyQueue:
    def __init__(self):
        self.arr = []
        self.front = 0   #队首索引(指针)
        self.rear = 0    #队尾索引(指针)
    
    #判断队列是否为空
    def is_empty(self):
        # 请输入你的代码
        return self.rear == self.front
    
    #返回队列大小
    def size(self):
        # 请输入你的代码
        return self.rear - self.front
    
    #返回队列首元素
    def get_front(self):
        #先判断队列是否为空,为空返回None,否则返回队首元素
        # 请输入你的代码
        if self.is_empty():
            return None
        else:
            return self.arr[self.front]
    #返回队尾元素
    def get_rear(self):
        #先判断队列是否为空,为空返回None,否则返回队尾元素
        # 请输入你的代码
        if self.is_empty():
            return None
        else:
            return self.arr[self.rear-1]

    #出队(更换队首)
    def de_queue(self):
        #先判断队列是否为空
        # 请输入你的代码
        if self.rear > self.front:
            self.front += 1
        else:
            print('队列已空')
           
    
    #入队
    def en_queue(self, item):
        #队尾插入新元素后,注意更新队尾索引(指针)
        # 请输入你的代码
        self.arr.append(item)
        self.rear += 1

Operación de cola

Crear una nueva cola (llamada q1)

# 请输入你的代码
q1 = MyQueue()
q1
<__main__.MyQueue at 0x7d42408>

Coloque la matriz ls_1 por índice de pequeño a grande

ls_1 = list(range(1,10,2))
ls_1
[1, 3, 5, 7, 9]
for i in ls_1:
    # 请输入你的代码
    q1.en_queue(i)

Número de elementos en la cola de salida

# 请输入你的代码
q1.size()
5

Obtenga el primer elemento de la cola, guárdelo en la variable q1_getfront e imprima el número de elementos en la cola

# 请输入你的代码
q1_getfront = q1.get_front()
print('队首元素为:{}'.format(q1_getfront))
print('队列长度为:{}'.format(q1.size()))
队首元素为:1
队列长度为:5

Obtenga el elemento de cola, guárdelo en la variable q1_getrear, imprima el número de elementos de cola

# 请输入你的代码
q1_getrear = q1.get_rear()
print('队尾元素为:{}'.format(q1_getrear))
print('队列长度为:{}'.format(q1.size()))
队尾元素为:9
队列长度为:5

Realice la operación de retirada de la cola, imprima el índice de cabecera, el índice de cola y el número de elementos de cola antes y después del equipo

# 请输入你的代码
print('出队前队首索引为:{},队尾索引为:{}'.format(q1.front,q1.rear))
print('*******************')
q1.de_queue()
print('出队后队首索引为:{},队尾索引为:{}'.format(q1.front,q1.rear))
print('出队之后队列元素个数为:{}'.format(q1.size()))
出队前队首索引为:0,队尾索引为:5
*******************
出队后队首索引为:1,队尾索引为:5
出队之后队列元素个数为:4
Publicado 42 artículos originales · elogiado 28 · visitas 4961

Supongo que te gusta

Origin blog.csdn.net/KaelCui/article/details/105393046
Recomendado
Clasificación