繁体   English   中英

节点队列(链接列表)C ++

[英]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();

popvoid函数。 您需要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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM