我正在创建链接列表。我想调用函数
addToTail(head*, data)
来自函数
addToTail(head*){int n = length(head*); addtoTail(head*, n)}
包含一个可以计算列表长度的函数。
这不幸地给了我一个错误
\linkedList.cpp:97:16: error: too few arguments to function 'void addAtTail(node*, int)'
对我来说似乎很有意义,我做错了吗?
这是代码。任何改进它的评论都将不胜感激。
#include<iostream>
using namespace std;
struct node
{
int data;
struct node* next;
};
void changeToNull(struct node** head)
{
*head = NULL;
}
int listLength(struct node* head)
{
struct node* curr = head;
int i = 0;
while(curr!=NULL)
{
i++;
curr = curr->next;
}
return i;
}
void addAtTail(struct node* head)
{
int length = listLength(head);
addAtTail(head, length);
}
void addAtTail(struct node* head, int n)
{
struct node* newNode = new node;
struct node* curr = new node;
newNode->next = NULL;
newNode->data = n;
curr= head;
while(curr->next!=NULL)
{
curr = curr->next;
}
curr->next = newNode;
}
int main()
{
//changeToNull(&head);
addAtTail(head);
printList(head);
return 0;
}
答案 0 :(得分:0)
addToTail(head*){int n = length(head*); addtoTail(head*, n)}
此处head*
是typename而不是fromal参数。你需要这样做:
addToTail(node* head){int n = length(head); addtoTail(head, n)}
注意:
您没有length(node*)
定义,您定义了:
listLength(struct node*);
所以你应该使用int n = listLength(head)