zoukankan      html  css  js  c++  java
  • 第二章 队列(3) 顺序存储结构

    1、队列(Queue):是一种特殊的线性表(数据元素之间的关系是线性关系),其插入、删除分别在表的两端进行,一端只能插入,另一端只能删除。

    2、术语

    队首(front):进行删除的一端;

    队尾(rear):进行插入的一端;

    入队:在队尾插入一个元素;

    出队:在队首删除一个元素;

    3、特点

    由于限制了插入、删除分别在两端进行,那么元素的操作顺序有“先进先出”或“后进后出”的特点(First In First Out-FIFO Last in Last Out-LILO)

    4、操作

    1)队列的初始化Iniqueue(Q):将队列置为空;

    2)入队Enqueue(Q):即在队尾插入一个元素;

    3)出队Dlqueue(Q):即在队首删除一个元素;

    4)取队首元素Gethead(Q):访问队首元素;

    5)判断队列是否空Empty(Q):判断队列是否为空;

    6)求队列的大小Current_size(Q):求队列中元素个数;

    7)队列清空Clear(Q):将队列清为空。

    5、ADT

    ADT Queue
    {
        data structure:
        D={ai|ai∈DO i=2,3,4,...}
        R={N}
        N={<ai-1,ai>|ai-1,ai∈D0 i=2,3,4,...}
        D0某个对象
        operations:
        Iniqueue(Q);Enqueue(Q);Dlqueue(Q);
        Gethead(Q);Empty(Q);Current_size(Q);
        clear(Q);
    }

    6、存储方式:同一般线性表的顺序存储结构完全相同。但是由于在两端扣作,设两个指示器,(rear和front)

    分别佛示队列的尾和首。

    特别约定头指针始终指向队列头元素,而尾指针始终指向队列尾元素的下一位置!

    空队列:rear=front=0

    入队:rear=rear+1

    出队:front=fornt+1

    队列空:rear=front=0

    7、循环队列的ADT

    8、队列的链式存储结构

  • 相关阅读:
    BASE64Encoder/BASE64Decoder(转)
    对象转化为json
    Intent
    RecyclerView的单击和长按事件(转)
    selector的例子
    修改app工程名 Android Studio
    The number of method references in a .dex file cannot exceed 64K.(转)
    $(function() {})
    jQuery插件开发的两种方法及$.fn.extend的详解(转)
    myeclipse2014安装aptana3.4.0插件(转)
  • 原文地址:https://www.cnblogs.com/shamoof/p/3662806.html
Copyright © 2011-2022 走看看