2012-02-09 3 views
1

Я совершенно не знаком с C++ и ломаю голову над простой проблемой. Я пытаюсь реализовать простой связанный список с тремя узлами. Вот мой код:Проблемы со связанным списком в 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; 

}; 

Вопрос, очевидно, что, почему он не скомпилирован? :(

Заранее спасибо за любую помощь!

+6

Какое сообщение об ошибке компилятора? –

+5

Если вы «совершенно новый», то, пожалуйста, исключите «злоупотребление пространством имен std;» прямо сейчас, пока у вас все еще есть шанс, и никогда не используйте его снова. –

+0

Вот копия сообщения об ошибке: http://chopapp.com/#fq7vcb86 –

ответ

6

Удалите «()» из объявлений структуры. Ваш компилятор должен был сказать вам об этом.

+0

Это, и добавление int main() решило это! Спасибо :) –

+0

О да, да, рад помочь, и, пожалуйста, серьезно отнеситесь к совету Kerrek SB и удалите «using namespace std», пока у вас еще есть шанс ;-) –

+0

@ user1200428 и убедитесь, что приняли ответ! –

1

Заменить

struct node(){ 
    int data; 
    struct node* next; 
}; 

с

struct node{ 
    int data; 
    struct node* next; 
}; 

Дополнительный paranthesis после объявления структуры вызывают ошибку. Последнее является надлежащий способ объявления struct или class в C++.

1

В декларации вашего struct имеется избыточная пара скобок. Когда вы удалите их это, это должно быть в порядке:

struct node{ 
    int data; 
    struct node* next; 
}; 
0

() должны быть написаны после того, как функции вместо имени структура/класса.

Смежные вопросы