Связанный список в С++

Модератор: Модераторы разделов

Mirimon
Сообщения: 130

Связанный список в С++

Сообщение Mirimon »

Народ, пытаюсь сделать связанный список:

Код: Выделить всё

struct link                           //one element of list
   {
   int data;                          //data item
   link* next;                        //pointer to next link
   };
////////////////////////////////////////////////////////////////
class linklist                        //a list of links
   {
   private:
      link* first;                    //pointer to first link
   public:
      linklist()                      //no-argument constructor
         { first = NULL; }            //no first link
      void additem(int d);            //add data item (one link)
      void display();                 //display all links
   };

Компилятор ругается на строчку link* first; причем в винде она нормально работает, да и прога из Лафоре, так что не во мне дело... Пишу в KDevelop.
Ubuntu 9.04
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5400
ОС: Gentoo

Re: Связанный список в С++

Сообщение /dev/random »

Как именно ругается? Кстати, указывать полный текст сообщения об ошибке нужно всегда, какой бы ни была проблема - иначе вероятность того, что помогут, падает раз в 100
Спасибо сказали:
Mirimon
Сообщения: 130

Re: Связанный список в С++

Сообщение Mirimon »

Код: Выделить всё

/home/mirimon/Programming/Proba/src/proba.cpp:125:5: warning: no newline at end of file
/home/mirimon/Programming/Proba/src/proba.cpp:88: error: ISO C++ forbids declaration of ‘link’ with no type
/home/mirimon/Programming/Proba/src/proba.cpp:88: error: expected ‘;’ before ‘*’ token
/home/mirimon/Programming/Proba/src/proba.cpp: In constructor ‘linklist::linklist()’:
/home/mirimon/Programming/Proba/src/proba.cpp:91: error: ‘first’ was not declared in this scope
/home/mirimon/Programming/Proba/src/proba.cpp: In member function ‘void linklist::additem(int)’:
/home/mirimon/Programming/Proba/src/proba.cpp:98: error: ‘newlink’ was not declared in this scope
/home/mirimon/Programming/Proba/src/proba.cpp:98: error: expected type-specifier before ‘link’
/home/mirimon/Programming/Proba/src/proba.cpp:98: error: expected `;' before ‘link’
/home/mirimon/Programming/Proba/src/proba.cpp:100: error: ‘first’ was not declared in this scope
/home/mirimon/Programming/Proba/src/proba.cpp: In member function ‘void linklist::display()’:
/home/mirimon/Programming/Proba/src/proba.cpp:106: error: ‘current’ was not declared in this scope
/home/mirimon/Programming/Proba/src/proba.cpp:106: error: ‘first’ was not declared in this scope
gmake: *** [proba.o] Ошибка 1
gmake: Цель `proba' не была пересобрана из-за ошибок.
*** Завершено с кодом: 2 ***

Простите)))
Ubuntu 9.04
Спасибо сказали:
Mirimon
Сообщения: 130

Re: Связанный список в С++

Сообщение Mirimon »

Решено, link заменил на lin и заработало, наверно слово link где-то уже используется.
Ubuntu 9.04
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5400
ОС: Gentoo

Re: Связанный список в С++

Сообщение /dev/random »

Идентификатор 'link' уже существует:

Код: Выделить всё

NAME
       link - make a new name for a file
SYNOPSIS
       #include <unistd.h>
       int link(const char *oldpath, const char *newpath);

Следует либо заменить имя 'link' на какое-нибудь другое, либо не опускать ключевое слово 'struct' перед 'link':

Код: Выделить всё

   private:
      struct link* first;                    //pointer to first link


Добавил через несколько минут:
Блин, не заметил последнего поста
Спасибо сказали:
Mirimon
Сообщения: 130

Re: Связанный список в С++

Сообщение Mirimon »

Все-равно благодарю)))
Ubuntu 9.04
Спасибо сказали:
Аватара пользователя
deninok
Сообщения: 585
Статус: Программист С++
ОС: Debian GNU/Linux

Re: Связанный список в С++

Сообщение deninok »

Маленький вопрос автору темы: а список из STL использовать не пробовали? Или цель именно в том, чтобы создать собственный?
Спасибо сказали:
Mirimon
Сообщения: 130

Re: Связанный список в С++

Сообщение Mirimon »

Во-первых именно самому (лаба))) ), а во-вторых, я пока только изучаю С++, читаю Лафоре, и до STL еще не дошел)))
Ubuntu 9.04
Спасибо сказали: