我正在尝试制作一个队列列表,我正在传递链接列表的引用,但它不起作用并给出错误。
在函数 'void insertDataToQueue(Node**, int)'中:| 请求"* temp"中的成员"next",其指针类型为"节点* {aka node*}"(也许您打算使用"->"?
void insertDataToQueue(Node **queueList, int burstTime){
Node *newNode = new Node;
newNode->burstTime = burstTime;
newNode->next = NULL;
if(queueList == NULL){
*queueList = newNode;
}
else{
Node **temp = queueList;
while(*temp != NULL)
temp = *temp->next;
}
}
要遍历整个列表,只需一个简单的指向Node
的指针就足够了:
void insertDataToQueue(Node **queueList, int burstTime){
Node *newNode = new Node;
newNode->burstTime = burstTime;
newNode->next = NULL;
if(queueList == NULL) {
*queueList = newNode;
}
else {
Node *temp = *queueList;
// Find last element, ie element who "next" field is NULL
while(temp->next != NULL) {
temp = temp->next;
}
// Make last element to point to new element
temp->next = newNode;
}
}
<小时 />现在,没有任何链接,我想(我希望)只是为了学习方面。因为C++您需要的每个容器。例如,您有std::list
或std::queue
谁是链表。对于生产代码,最好使用它而不是自己开发。
这个
*temp->next;
解析为
*(temp->next);
因为->
的优先级高于*
,如果要先取消引用,然后再访问成员,可以使用括号:
(*temp)->next;