c++ - 带有链表的 C++ 队列
问题描述
问题:
struct QueueNode {
int data;
QueueNode *next;
};
做
- int size() const:返回数据大小。
- bool is_empty() 常量:
- void enqueue(int val):在列表末尾添加一个新节点。
- void dequeue():移除 head 指向的节点。
- int top() const:返回下一个出队的数据。
这是我的代码
class Queue {
private:
QueueNode *_head = NULL, *_tail = NULL;
int _size = 0;
public:
int size() const {
if (! is_empty())
return _size;
}
bool is_empty() const {
if (_size == 0)
return true;
else
return false;
}
void enqueue(int val) {
QueueNode *n = new QueueNode;
n -> data = val;
n -> next = NULL;
if (is_empty()) {
_head = n;
_tail = n;
_size ++;
}
else {
_tail -> next = n;
_tail = n;
_size ++;
}
}
void dequeue() {
QueueNode *temp;
temp = _head;
if (! is_empty()) {
_head = _head -> next;
delete temp;
_size --;
}
}
int top() const {
if (! is_empty())
return _head -> data;
}
};
在线法官显示错误答案。我认为“int top() const”是错误的。但我不知道。请求帮忙。谢谢。
解决方案
我的答案。感谢大家。
class Queue {
private:
QueueNode *_head = NULL, *_tail = NULL;
int _size = 0;
public:
int size() const {
if (! is_empty())
return _size;
else
return 0;
}
bool is_empty() const {
if (_size == 0)
return true;
else
return false;
}
void enqueue(int val) {
QueueNode *n = new QueueNode;
n -> data = val;
n -> next = NULL;
if (is_empty()) {
_head = _tail = n;
_size ++;
}
else {
_tail -> next = n;
_tail = n;
_size ++;
}
}
void dequeue() {
QueueNode *temp;
temp = _head;
if (! is_empty()) {
_head = _head -> next;
delete temp;
_size --;
}
}
int top() const {
if (! is_empty())
return _head -> data;
}
};
推荐阅读
- vhdl - 将字节转换为 std_logic_vector
- daemon - 查询(属于“PhabricatorDaemonLogQuery”类)过热:检查了 10 多个原始行但未找到 1 个可见对象
- scala - 在不使用 sbt 的情况下使用“import org.apache.spark.SparkContext”编译 scala 代码
- python - 熊猫转换列表的不一致行为
- c - 如何为我的 Linux 找到可用的 POSIX 系统调用 api 列表?
- linux - 为 QMainWindow 恢复浮动工具栏的问题
- grok - 任何 2019 Grok NCSS
- laravel - Laravel 表单请求重复查询
- dataframe - 在 Elastic Search 中使用某些字段和某些条件进行查询?
- c# - SaveFileDialog 工具中是否有路径属性?