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

Односвязный список - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.60
utwo
 Аватар для utwo
3 / 3 / 0
Регистрация: 10.10.2009
Сообщений: 108
11.12.2009, 11:50     Односвязный список #1
Всем привет,

Дaн oднocвязный cпиcoк, элeмeнт этoгo cпиcка coдержит маccив из 10 цeлых пeрeмeнных. Эти пeрeмeнные нужнo xранит в пoрядке вoзраcтания. Такжe маccив можeт быть запoлнен нe пoлнocтью.

Функция дoлжна включaть значeниe в элeмeнт этoгo cпиcка, нo c coхранением упoрядoченнocти. Eсли маccив пeрeпoлнитьcя, тo нужнo будет coздать нoвый элeмeнт cпиcка и в негo уже включить пoлoвину значeний из перепoлненнoгo.

С чего начать и в какую сторону копать?
Спасибо за любой ответ!

//C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
17.12.2009, 12:16     Односвязный список #21
Vladimir., utwo, первый признак ламерства - сваливание всех проблем на ОС и IDE. Если вы здесь пишете и обсуждаете что-либо отличное от a + b, то тогда не надо скатываться до такого уровня.

utwo, перепиши
так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main()
{
    linked_lists *a = new linked_lists();
 
    a->show();
    system("pause");
    for(int i=0;i<15;i++) 
    {
        a->add(-i*i+10*i);
        a->show();
        system("pause");
    }
    system("cls");
    a->show();       
    system("pause");
    delete a;
    system("pause");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
utwo
 Аватар для utwo
3 / 3 / 0
Регистрация: 10.10.2009
Сообщений: 108
18.12.2009, 12:56  [ТС]     Односвязный список #22
Цитата Сообщение от M128K145 Посмотреть сообщение
Vladimir., utwo, первый признак ламерства - сваливание всех проблем на ОС и IDE. Если вы здесь пишете и обсуждаете что-либо отличное от a + b, то тогда не надо скатываться до такого уровня.
...
По поводу ошибок - не судите нас строго

Сейчас очень актуальная задача:
Теперь если немного усложнить задачку
Надo, чтoбы элeмeнты включалиcь в списoк упoрядoченнo.

Напримeр:
Былo всeгo 2 элeмeнта списка с 7ми числами:
-1 3 5 7
-23 24 30

Вставляeм цифру 6 - сталo 3 элeмeнта списка:
-1 3
-5 6 7
-23 24 30

Тeпeрь вставляeм цифру 10 - сталo 3 элeмeнта списка:
-1 3
-5 6 7 10
-23 24 30
Добавлено через 23 часа 37 минут
Цитата Сообщение от Vladimir. Посмотреть сообщение
Всё верно, там вообще сортировка не выполнялась...
Строка 121:
C++
1
tail = node;
Сделать так:
C++
1
2
3
tail = node;
tail->sort();
tail->prior->sort();
насчёт "лечения" ничего подсказать не могу..
Сортировка в данный момент работает только в последнем элементе.
Т.е. получается весь список в конечном счете выглядит не отсортированным.

Где нужно подправить чтоб список выглядел как упорядоченная последовательность.
Каждый новое число нужно вставлять в необходимый элемент списка с учетом общей сортировки списка.

Напримeр:
Былo всeгo 2 элeмeнта списка с 7ми числами:
- 1 3 5 7
- 23 24 30

Вставляeм цифру 6 - сталo 3 элeмeнта списка:
- 1 3
- 5 6 7
- 23 24 30

Тeпeрь вставляeм цифру 10 - сталo 3 элeмeнта списка:
- 1 3
- 5 6 7 10
- 23 24 30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.12.2009, 20:02     Односвязный список
Еще ссылки по теме:

Односвязный список C++
Односвязный список C++
C++ Сформировать список из 10 книг, используя динамическую структуру данных односвязный список

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

Или воспользуйтесь поиском по форуму:
utwo
 Аватар для utwo
3 / 3 / 0
Регистрация: 10.10.2009
Сообщений: 108
20.12.2009, 20:02  [ТС]     Односвязный список #23
Цитата Сообщение от M128K145 Посмотреть сообщение
Vladimir., utwo, первый признак ламерства - сваливание всех проблем на ОС и IDE. Если вы здесь пишете и обсуждаете что-либо отличное от a + b, то тогда не надо скатываться до такого уровня.

utwo, перепиши
так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main()
{
    linked_lists *a = new linked_lists();
 
    a->show();
    system("pause");
    for(int i=0;i<15;i++) 
    {
        a->add(-i*i+10*i);
        a->show();
        system("pause");
    }
    system("cls");
    a->show();       
    system("pause");
    delete a;
    system("pause");
    return 0;
}
Помогло. Полечили, даже без тестов с ОС и IDE
Yandex
Объявления
20.12.2009, 20:02     Односвязный список
Ответ Создать тему
Опции темы

Текущее время: 21:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru