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

Добавление элемента в конец списка - C++

Восстановить пароль Регистрация
 
ЯРОКОС
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 21
22.04.2014, 21:05     Добавление элемента в конец списка #1
Сначала добавляет первый элемент, а далее не хочет? Посмотрите свежим глазом, а то я лагаю!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void List::bound(char data)
{if (!Head)
{  Head=new Element;
   Head->Next=NULL;
   Head->data=data;
   return;
}
Element*Tail=new Element;
while (!Tail->Next) Tail=Tail->Next;
Element* temp=new Element;
temp->Next=NULL;
Tail->Next=temp;
temp->data=data;
temp->Next=Head;
return;
}
Добавлено через 13 минут
Или покажите свой пример!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2014, 21:05     Добавление элемента в конец списка
Посмотрите здесь:

Перенос в начало списка его максимального элемента, а в конец минимальный C++
Списки. Функции добавление списка в конец и в середину другого списка. C++
Добавление элемента в конец односвязного списка - ошибка C++
добавление элемента, введенного с клавиатуры, в конец очереди C++
Добавление в конец двусвязного списка C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TenGen
Будущее рядом
 Аватар для TenGen
96 / 94 / 20
Регистрация: 06.03.2014
Сообщений: 342
22.04.2014, 21:19     Добавление элемента в конец списка #2
ЯРОКОС,
C++
1
2
3
4
5
6
7
8
9
void add(node *elem)
{
if (!head) head = foot = elem;
else
{
foot->next = elem;
foot = elem;
}
}
само собой, elem - новый элемент, head - начало списка, foot - указатель на конец списка (для более удобного добавления в конец списка)
А если без него, то удобнее так
C++
1
2
3
4
5
6
7
8
9
void add(node *elem)
{
if (!head) head = elem;
else
{
elem->next = head;
head = elem;
}
}
добавляет элементы в начало списка, но дополнительных переменных уже не требуется
ЯРОКОС
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 21
22.04.2014, 21:39  [ТС]     Добавление элемента в конец списка #3
Ругается на node!
Цитата Сообщение от TenGen Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
void add(node *elem) 
{
if (!head) head = elem;
else
{
elem->next = head;
head = elem;
}
}
Добавлено через 4 минуты
Вот я делал добавление элемента - на его нужное место, так что бы не повторялся! Н-д: 1 4 6 8 9 11. 8 - это давленый элемент, а теперь нужно сделать в конец списка!
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
{
    Element *temp = new Element;
    temp->data = data;
    Tail = Head;
    if (Head != NULL)
    {
        while (Tail != NULL)
        {
           if (Tail->data == temp->data)
            {
                delete temp;
                break;
            }
           // if (Tail->data == temp->data)
           //     break;
            else if (Tail->data < temp->data && Tail->Next == NULL)
            {
                Tail->Next = temp;
                break;
            }
            else if (Tail->data < temp->data && Tail->Next->data > temp->data)
            {
                temp->Next = Tail->Next;
                Tail->Next = temp;
                break;
            }
            Tail = Tail->Next;
        }
    }
    else
        Head = Tail = temp;
    }
TenGen
Будущее рядом
 Аватар для TenGen
96 / 94 / 20
Регистрация: 06.03.2014
Сообщений: 342
22.04.2014, 21:48     Добавление элемента в конец списка #4
ЯРОКОС, node - ваша структура (у вас вместо node будет Element)
ЯРОКОС
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 21
22.04.2014, 22:06  [ТС]     Добавление элемента в конец списка #5
А если вернутся к первому моему способу, тебе не видно где проблема? Он то запускается, добавляет первый элемент, потом беру добавляю второй элемент, вывожу а там только первый, опять добавляю элемент, вывожу - а там только первый!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void List::bound(char data)
{if (!Head)
{  Head=new Element;
   Head->Next=NULL;
   Head->data=data;
   return;
}
Element*Tail=new Element;
while (!Tail->Next) Tail=Tail->Next;
Element* temp=new Element;
temp->Next=NULL;
Tail->Next=temp;
temp->data=data;
temp->Next=Head;
return;
}
TenGen
Будущее рядом
 Аватар для TenGen
96 / 94 / 20
Регистрация: 06.03.2014
Сообщений: 342
22.04.2014, 22:13     Добавление элемента в конец списка #6
ЯРОКОС, если я не ошибаюсь, то у вас цикл не работает
В строке 9 вы создаете элемент, но не заполняете ее данными. Поэтому цикл Tail->next ведет хз куда
Yandex
Объявления
22.04.2014, 22:13     Добавление элемента в конец списка
Ответ Создать тему
Опции темы

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