线性结构-队列

2016-05-12  本文已影响148人  掷骰子的求

<big>编译环境:python v3.5.0, mac osx 10.11.4</big>

什么是队列

队列的抽象数据类型描述

队列的顺序存储(数组)实现

队列的链式存储(链表)实现

队列的链式存储结构也可以由单向链表实现。由于删除操作作用在front头,所以front指向头节点。(queue_chain.py)

class Note():
    def __init__(self,value=None,next=None):
        self.value = value
        self.next = next

class queueChain:
    def __init__(self,front=None,rear=None):
        self.front = front # fron指向表头的指针
        self.rear = rear # rear指向表尾的指针

def inQue(queue, value):  # 入队操作
    newNote = Note(value)
    if queue.front is None:  # 链表为空,将front 赋值给表头
        queue.front = queue.rear =  newNote
    else:
        queue.rear.next = newNote
        queue.rear = newNote
    print('add  '+str(value)+' in the queue' )

def outQue(queue): # 出队操作
    if queue.front is None :  # 如果front指向为空,则链表为空
        print('it is an empty queue!')
    else:
        p = queue.front
        element = p.value
        if queue.front == queue.rear:  # 如果前后指针指向一个元素,则全部重置为None
            queue.front = queue.rear = None
        else:
            queue.front = p.next
            del p  # 释放空间
        print('delete  ' + str(element) +'  out of Queue')
        return element

源代码: JacobKam-GitHub

后续内容:

上一篇 下一篇

猜你喜欢

热点阅读