Форум программистов, компьютерный форум CyberForum.ru

Не могу понять в чем ошибка: реализация односвязного списка - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Функция, определяющая достижение начала файла: есть ли такая? http://www.cyberforum.ru/cpp-beginners/thread160173.html
Собственно мне нужна функция, проверяющая достижение начала файла, типа feof только наоборот. Гуглил, ничего не нашел =(
C++ Есть исходники браузера? Есть у кого-нибудь исходники браузера? П.С.Администрации сделайте в каждом разделе форума чат, примерно для таких вопросов. Добавлено через 6 минут П.С. Исходники нужны на чистом Си http://www.cyberforum.ru/cpp-beginners/thread160161.html
Вычислить произведение ряда C++
Господа,нужна помощь. Кому не лень,не трудно,помогите чем могите. Собственно вот: Блок А 1. В области 12 районов. Известны количество жителей каждого района ( в тысячах человек) и плотность населения в нем ( тыс. чел./ км2). Определить общую площадь территории области. (задачи без использования массивов). 2. Дан массив целых чисел (n=12), заполненный случайным образом числами из...
C++ Непонятная операция
Всем доброго времени суток! Помогите разобраться, ранее не встречал: Есть enum Sute {clubs,diamonds,hearts,spades} в main() мы создаем колоду карт и заполняем. Так вот при заполнении в цикле есть такая операция: Suit su = Suit(j/13); С левой частью все ясно, а вот с правой не очень. Почему мы не работаем с объектом Suit, а как-то напрямую это делаем...вообще не ясно.
C++ Закрывается программа http://www.cyberforum.ru/cpp-beginners/thread160092.html
После запуска откомпилированной программы я её запускаю и окно программы сразу закрывается (пользуюсь компилятором Code::Blocks) как можно это исправить
C++ Вопрос насчёт рекурсии в цикле Здравствуйте. У меня вопрос насчёт рекурсии в цикле. Вот пример: int massiv={1,2,3}; int heapPermute(int n){ cout <<"В начале n=" <<n <<' '; int temp=0; int razmer = sizeof(massiv)/sizeof(int); if(n==0) { for(int i=0; i<razmer; i++) { if(i==0) {cout <<endl; } cout <<massiv <<' '; } } else { подробнее

Показать сообщение отдельно
lala_777
0 / 0 / 0
Регистрация: 22.11.2009
Сообщений: 9
18.08.2010, 21:12     Не могу понять в чем ошибка: реализация односвязного списка
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <iostream>
using namespace std;
 
struct list
{
    int key;
    list *next;
};
 
void addList(list *start);
void printList(list *start);
 
int main()
{
    list *start;
    start=new list;
    cin >> start->key;
    start->next=NULL;
 
    int listSize;
    cin >> listSize;
 
    for(int i=0;i<listSize;i++)
        addList(start);
 
    printList(start);
    
    cin.get();
    cin.get();
 
    return 0;
}
 
 
void addList(list *start)
{
    list *temp;
    temp=new list;
    cin >> temp->key;
    temp->next=start;
    start=temp;
}
 
void printList(list *start)
{
    list *now=start;
 
    while(now!=NULL)
    {
        cout << now->key << " ";
        now=now->next;
    }
 
}
Пытаясь разобраться со списками, создал вот такую примитивную программку. Но почему-то она не работает и я , хоть убейте, не пойму в чем ошибка. Буду очень благодарен за любые советы и помощь.

Добавлено через 3 минуты
Программа должна выводить ключи всех элементов списка, но выводит она почему-то лишь один.
Сдается мне, что проблема в реализации функции addList.

Добавлено через 15 минут
Спасибо, проблема решилась после модификации функции addList:
C++
1
2
3
4
5
6
7
8
9
10
list *addList(list *start)
{
    list *temp;
    temp=new list;
    cin >> temp->key;
    temp->next=start;
    start=temp;
    
    return start;
}
Но возник вопрос - как сделать то же самое, используя void? Нужен указатель на указатель в параметре функции addList: void addList(list **start)? Спасибо.

Добавлено через 8 минут
Я имею в виду, чтобы не нужно было возвращать указатель на первый элемент снова.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru