[英]Queue of Nodes (Linked-list) C++
我正在尝试将节点存储在队列(STL)中,但出现错误。
首先,我想知道Node的结构是否正确。
确实,我想按整数顺序(从小到大)存储节点,听说了优先级队列,尝试使用它,但是遇到了一个很大的错误,所以我回到了队列。
然后,我看到了有关节点的运算符重载的一些信息,但是我没有真正了解如何使用它。 将不得不制作一个Node.h文件吗?
struct Node{
int freq;
char Char;
struct Node *left;
struct Node *right;
Node(int freq, char Char){
freq = freq;
Char = Char;
}
};
queue<Node*> list;
Node *a = new Node(2, '4');
list.push(a);
Node *e = list.pop();
cout << e->freq;
错误:
error: void value not ignored as it ought to be // Node *e = list.pop();
pop
是void
函数。 您需要front
:
list.pop();
Node *e = list.front();
下一个问题是构造函数:
Node(int freq, char Char){
this->freq = freq; // <------- 'this->' is added to access to right variables
this->Char = Char; // <-------
}
我的建议是如下编写您的构造函数:
Node(int freq, char Char) : freq(freq), Char(Char)
{
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.