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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Trigun
4 / 4 / 0
Регистрация: 02.04.2010
Сообщений: 22
#1

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

25.04.2010, 23:36. Просмотров 523. Ответов 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2010, 23:36     Рекурсия. Формула записи элементов в начало списка
Посмотрите здесь:

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

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

Вставка в начало списка - C++
Народ, поскажите как реализовать вставку в начало списка? текст вставки в конец сделал, а в начало не пойму как! Вот вставка в конец: int...

Добавление элемента в начало списка - C++
Проблема в том, что выводит 100, 9. Почему не выводит промежуточные значения - не понятно. Вроде бы не должен. #include <stdio.h> ...

Добавить элемент в начало списка - C++
Добавить элемент в начало списка. срочно нужно,помогите пожалуйста

Значения не вставляются в начало списка - C++
Доброго времени суток ! Помогите пожалуйста у меня значения не вставляются в начало списка. #include <iostream> using namespace...

Передача указателя на начало списка - C++
#include <stdio.h> #include <vld.h> #include <iostream> #include <Windows.h> #define size 20 using namespace std; struct...

Начало списка вывести в новой строке - C++
int main() { if (!readfile()) { // читаем из файла и создаем список. std::cout << "Error opening file."; return...

Не работает функция вставки в начало списка - C++
Добрый день. Учусь работать с линейным списком, пишу программу, которая должна выполнять условие: Вставить заданное число элементов перед...

Добавление элемента в начало односвязного списка - C++
Здравствуйте, я не где не могу найти функцию по добавлению элемента в начало односвязного списка. Пожалуйста подскажите ее.

Добавить элементы в начало главного списка - C++
Функция void AddHead(const List *l1) должна добавлять элементы l1 в голову главного списка. Первое добавление проходит нормально, второе...

Вставка элемента в начало односвязного списка - C++
Помогите вставить элемент в начало односвязного списка. Написана функция Insert, но она работает только для вставки в середину и конец...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
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, которое содержало случайные данные
Trigun
4 / 4 / 0
Регистрация: 02.04.2010
Сообщений: 22
26.04.2010, 07:35  [ТС]     Рекурсия. Формула записи элементов в начало списка #3
итеративная функция у меня и так работала, мне нужно рексивную функцию
помогите кто может
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
26.04.2010, 07:45     Рекурсия. Формула записи элементов в начало списка #4
Цитата Сообщение от Trigun
итеративная функция у меня и так работала
в ней ошибка
Trigun
4 / 4 / 0
Регистрация: 02.04.2010
Сообщений: 22
26.04.2010, 07:52  [ТС]     Рекурсия. Формула записи элементов в начало списка #5
ну ладно))) согласен)))

но вопрос в другом- как сделать ее рекурсивной?
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
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;
}
и там подобная ошибка, если не ввести ничего, возвращается что ? ничего - случайные данные
переменные не инициализируются нулями, кроме нескольких случаев, у тебя таких нет
Yandex
Объявления
26.04.2010, 09:36     Рекурсия. Формула записи элементов в начало списка
Ответ Создать тему
Опции темы

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