Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
ЯРОКОС
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 21
#1

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

22.04.2014, 21:05. Просмотров 951. Ответов 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;
}
Добавлено через 13 минут
Или покажите свой пример!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2014, 21:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Добавление элемента в конец списка (C++):

Добавление элемента в конец списка - C++
Решил перегрузить функцию добавления элемента, чтоб пользователь мог выбрать куда добавить новый элемент, в начало (перед первым) или в...

Добавление элемента в конец односвязного списка - C++
Добрый день. Помогите решить проблему с ошибкой в функции AddItem. CPP файл #include "stdafx.h" #include "Slovar.h" #include...

Добавление элемента в конец односвязного списка - ошибка - C++
Всем привет! Собственно, задача такая: написать функцию, добавляющую элемент в конец связного списка. Вроде всё правильно,...

Списки. Функции добавление списка в конец и в середину другого списка. - C++
Всем привет!) Я вот написал две функции, 1- добавляется список2 в середину списка1, а 2 - добавляет список2 в конец списка1....когда я...

Добавление в конец списка - C++
Привет всем, необходимо реализовать алгоритм вставки. В общем беру элемент на нечетной позиции списка и вставляю его в конец. 3-й час...

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

5
TenGen
Будущее рядом
98 / 96 / 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;
}
}
добавляет элементы в начало списка, но дополнительных переменных уже не требуется
1
ЯРОКОС
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;
    }
0
TenGen
Будущее рядом
98 / 96 / 20
Регистрация: 06.03.2014
Сообщений: 342
22.04.2014, 21:48 #4
ЯРОКОС, node - ваша структура (у вас вместо node будет Element)
1
ЯРОКОС
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;
}
0
TenGen
Будущее рядом
98 / 96 / 20
Регистрация: 06.03.2014
Сообщений: 342
22.04.2014, 22:13 #6
ЯРОКОС, если я не ошибаюсь, то у вас цикл не работает
В строке 9 вы создаете элемент, но не заполняете ее данными. Поэтому цикл Tail->next ведет хз куда
0
22.04.2014, 22:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2014, 22:13
Привет! Вот еще темы с ответами:

Добавление в конец двусвязного списка - C++
Помогите найти ошибку в коде: не работает добавление в конец. Список формируется добавлением в начало! Функция добавления: ...

Добавление элементов в конец связного списка - C++
Пишу программу по добавление элементов в конец связного списка: // linklist destructor #include &lt;iostream&gt; using namespace std; ...

Не работает добавление в конец односвязного списка - C++
работаю с формой, рисую там различные объекты, которые надо добавлять в собственное хранилище(такое задание) вот отрывок кода из header...

Добавление объекта в конец односвязного списка - C++
необходимо добавить объект в конец списка. как это сделать с помощью моей функции #include &lt;iostream&gt; #include &lt;conio.h&gt; using...


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

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

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