我对C ++完全陌生,并且正在解决一个简单的问题。我试图用三个节点实现一个简单的链表。这是我的代码:
#include<iostream>
using namespace std;
struct node(){
int data;
struct node* next;
};
struct node* BuildOneTwoThree() {
struct node* head = NULL;
struct node* second = NULL;
struct node* third = NULL;
head = new node;
second = new node;
third = new node;
head->data = 1;
head->next = second;
second->data = 2;
second->next = third;
third->data = 3;
third->next = NULL;
return head;
};
问题显然是,为什么不编译? :(
提前感谢您的帮助!
答案 0 :(得分:6)
从struct声明中删除“()”。你的编译器应该告诉你。
答案 1 :(得分:1)
替换
struct node(){
int data;
struct node* next;
};
带
struct node{
int data;
struct node* next;
};
struct声明后的额外括号导致错误。后者是在C ++中声明struct
或class
的正确方法。
答案 2 :(得分:1)
struct
的声明有一对多余的括号。当你删除它时,这应该没问题:
struct node{
int data;
struct node* next;
};
答案 3 :(得分:0)
()
应该在函数之后而不是struct / class name。