链队列和循环队列的尾指针指向问题
今天看了队列的相关知识点,上面写到链队列的尾指针指向尾结点,循环队列的尾指针指向尾结点的下一个位置,为什么会这样?想了大半天也没答案,这个问题不会和栈的尾结点的指向一样吧?
栈的尾结点的指向有些书上写的是指向尾结点,有些书上写的是指向尾结点的下一个结点,这个我在实际应用当中都用过,根据不同的情况我们可以选择不同的定义。
可是链队列尾指针的指向和循环队列尾指针的指向书上为什么要特意指出来呢?有什么深厚的含义吗?现在对队列的操作不大熟练也没怎么用,我就想问一下这么定义有什么深奥之处。
麻烦前辈指导一下,谢谢!
数据结构 队列 指针 应用
[解决办法]
感觉也没什么特意啊,这难道不是最直观的实现方法么?
[解决办法]
栈是后进先出,用链表的话在头部操作即可,没必要再加个尾指针。队列是先进先出,头尾都要有指针记忆位置,但是循环链表的话,尾节点的下一个便是头结点,所以只要有个尾指针即可,头指针省略不用...
[解决办法]
貌似你说的是数组形式的顺序表,事先申请一定的内存;我说的链表是节点带next指针,一个个申请内存那种
[解决办法]
为了和队列的定义保持一致,所以要指明尾指针,链式队列只是队列的一种实现方式,还要把握住队列的本质。
至于尾指针指向是尾结点还是尾结点的下一个结点,这个只是实现的一点区别,没有强制的要求。要根据自己的具体实现选择,不同的应用这两种会有些微小的区别,比如循环条件,判空等。
这和栈指针指向栈顶还是指向栈顶下一位置一样,都是可行的,OS采用的后者。