zoukankan      html  css  js  c++  java
  • 第三章:表、栈和队列

    关于循环队列:

    • 循环队列是顺序存储结构的,所以由数组实现。
    • 采用循环的方式实现队列是有好处的的,原因是队列如果采用数组实现时,如果不采用循环(或者说回绕)的方式,第一种情况是在出队时需要移动队列中后续元素,效率低;第二种情况是如果入队出队频繁,存储空间浪费太大。高一凡的《数据结构算法实现与解析》对这三种队列的顺序实现都做了详细分析。
    • 循环队列的具体实现因人而异,主要区别是队列的初始化,以及队列的结构中有没有Q_Size这个域,对于没有Q_Size域的结构,需要根据front和rear之间的差值来判断队空或者队满,并且只有队列中少用一个元素,才可以区分出队空和队满两种状态。如果将front和rear初始化为均为0,那么判断队空的条件是rear - front = 0,判断队满的条件是(rear +1)%MAX_SIZE - front = 0;而在Weiss书中,作者将front初始化为1,将rear初始化为0,此时判断对空的条件是rear - front = -1,判断队满的条件是(rear +1)%MAX_SIZE - front = -1。而如果队列的结构中含有Q_Size这个用来指示当前队列大小的域,那么就不用少用队列中的一个元素了,只要根据Q_Size是等于0还是MAX_Size即可区分出队列是空还是满。
    • 看到本章,发现Weiss的这本书更像是在跟你面对面的讨厌一种数据结构,比如队列,老外写的书一般都这样,哈哈。而高一凡的《数据结构算法实现与解析》更全面。

    关于链式队列:后面有时间再补充

  • 相关阅读:
    ps命令
    关于typedef的用法总结
    C#中正则表达式的使用
    调试与编译
    大端和小端
    64位程序内存之我看
    C/C++内存泄漏及检测
    内核中的 likely() 与 unlikely()
    do/while(0) c4127
    django+xadmin在线教育平台(六)
  • 原文地址:https://www.cnblogs.com/iamswf/p/4460737.html
Copyright © 2011-2022 走看看