Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
4 / 4 / 2
Регистрация: 02.04.2010
Сообщений: 22
1

Рекурсия. Формула записи элементов в начало списка

25.04.2010, 23:36. Просмотров 612. Ответов 5
Метки нет (Все метки)

формула по записи элементов в начало списка, в итеративном варианте олично работала а вот в рекурсивном работает криво
помогите плизз!!!
заранее спасибо

код итеративный:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
NodePtr MakeList()
{
   NodePtr p, q;
   int key;
 
   p=new Node;
   cin>>p->key;
   p->link=NULL;
 
   while(cin>>key)
     {
       q=new Node;
       q->link=p;
       q->key=key;
       p=q;
     }
   return q;
}
код рекурсивный:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
NodePtr MakeList(NodePtr p)
{
   NodePtr q;
   int key;
 
   if(cin>>key)
    {
     q=new Node;
     q->link=p;
     q->key=key;
     p=q;
 
     MakeList(p);
 
    }
   return q;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.04.2010, 23:36
Ответы с готовыми решениями:

Даны числа D1 и D2 и указатель P0 на один из элементов непустого двусвязного списка. Добавить в начало списка новый
Даны числа D1 и D2 и указатель P0 на один из элементов непустого двусвязного списка. Добавить в...

Как добавлять записи в начало списка и ограничивать их количество?
есть listview который берет данные из sqlite, и возникли такие вопросы: 1. как сделать чтоб в...

Добавление новой записи на ленточную подчиненную форму в начало списка
Добрый день! У меня такой вопрос: как сделать так чтобы при добавлении новой записи (по кнопке) в...

Создание списка, печать списка на экран, добавления элемента в начало списка, конец списка
Построить динамическую структуру типа список . Необходимо реализовать следующие процедуры: 1....

5
4848 / 3269 / 466
Регистрация: 10.12.2008
Сообщений: 10,569
26.04.2010, 06:35 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
NodePtr MakeList(void)
{
    NodePtr p, q;
    int key;
   
    q = NULL;
    while (cin >> key) {
        p = new Node;
        p->key = key;
        p->link = q;
        q = p;       
    }
    return p;
}
а в первом случае, при добавлении только первого узла, возвращалось q, которое содержало случайные данные
0
4 / 4 / 2
Регистрация: 02.04.2010
Сообщений: 22
26.04.2010, 07:35  [ТС] 3
итеративная функция у меня и так работала, мне нужно рексивную функцию
помогите кто может
0
4848 / 3269 / 466
Регистрация: 10.12.2008
Сообщений: 10,569
26.04.2010, 07:45 4
Цитата Сообщение от Trigun
итеративная функция у меня и так работала
в ней ошибка
0
4 / 4 / 2
Регистрация: 02.04.2010
Сообщений: 22
26.04.2010, 07:52  [ТС] 5
ну ладно))) согласен)))

но вопрос в другом- как сделать ее рекурсивной?
0
4848 / 3269 / 466
Регистрация: 10.12.2008
Сообщений: 10,569
26.04.2010, 09:36 6
а вот по поводу твоей рекурсивной я ничего такого не вижу
только зачем там p=q; MakeList(p); если можно было сделать просто MakeList(q);

Добавлено через 3 минуты
свой код поправлю
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
NodePtr MakeList(void)
{
    NodePtr p, q;
    int key;
   
    p = q = NULL;
    while (cin >> key) {
        p = new Node;
        p->key = key;
        p->link = q;
        q = p;       
    }
    return p;
}
и там подобная ошибка, если не ввести ничего, возвращается что ? ничего - случайные данные
переменные не инициализируются нулями, кроме нескольких случаев, у тебя таких нет
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.04.2010, 09:36

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Рекурсия: попарное сложение элементов списка
Складывает по парно числа списка L1, результирующий список - L2 Goal: sum2(,L2) L= 1 solution

Добавление элементов списка в начало в компонент ListBox
Есть ли в компоненте Listbox возможность добавления элементов в начало списка (свойство например),...

Переставление всех отрицательных элементов в начало списка
Здравствуйте всем, нужно определить функцию (f s), которая в многоуровневом списке s переставляет...

Рекурсия: вернуть количество элементов списка, равных True
Составить рекурсивную функции и записать их в по крайней мере 2-мя из трех предложенных способов. В...

Удалить элемент с заданным номером и добавить К элементов в начало списка
Написать программу, в которой создаются динамические структуры и выполнить их обработку в...

Список. Найти сумму элементов, больших 3 и меньших 8 и поместить ее в начало списка
Помогите мне пожалуйста Создать программу для создания списка из 10 целых чисел, вводимых с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.