面试真题

C++ · 中等 · 腾讯

手撕有界环形队列

中等 C++ 🎤 腾讯
参考答案
结论:用固定数组+头尾索引+计数实现有界环形队列,支持入队出队且满时拒绝。核心要点:1)成员含数组buf、容量cap、头head、尾tail、大小sz;2)入队若sz<cap则buf[tail]=x, tail=(tail+1)%cap, sz++;出队若sz>0则取buf[head], head=(head+1)%cap, sz--;3)判空sz==0,判满sz==cap;4)与无界队列区别在容量限制,与ringbuffer类似但更偏数据结构。示例:class CircQ{int* b;int h,t,cap,sz;public:bool push(int x);bool pop(int&x);};
题目整理自公开面经,答案由校招宝自研生成,仅供参考