我目前正致力于尝试理解C ++中的列表,堆栈和队列。我正在审核我的测试并遇到了一个询问"efficiently implement a queue class using a singly linked list, with no header or tail nodes."
我有点难过,有谁知道怎么做?
答案 0 :(得分:3)
提示:队列通常使用循环缓冲区实现。你会如何创建一个带有单链表的圆圈?
答案 1 :(得分:2)
您需要跟踪指向列表中头部和尾部项目的指针。
添加新项目时,将尾部项目的下一个指针指向新项目,然后更新尾部指针。
要从列表前面删除项目,只需返回头项目,然后更新头部指针。