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

Линейный односвязный список и Бинарное дерево - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
cooller51190555
0 / 0 / 0
Регистрация: 06.05.2011
Сообщений: 34
20.11.2011, 16:08     Линейный односвязный список и Бинарное дерево #1
Необходимо написать программу, но вот что-то затрудняюсь
1.Два линейных односвязных списка заданы указателями на первый элемент. Целые числа, хранимые в узлах каждого из списков, упорядочены по возрастанию. Необходимо построить третий список, содержа-щий (также в порядке возрастания) все числа, занесенные в исходные списки.
2.Бинарное дерево задано указателем на корень. Реализовать программу, обеспечивающую вывод на экран ключей дерева по уровням с обратным порядком следования элементов (справа налево снизу вверх). Допускается использование только динамических структур данных.

Добавлено через 36 минут
Помогите кто может
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2011, 16:08     Линейный односвязный список и Бинарное дерево
Посмотрите здесь:

C++ Линейный односвязный список
список линейный односвязный C++
Односвязный линейный список C++
Односвязный линейный список C++
Линейный односвязный список C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Yakoot
15 / 15 / 2
Регистрация: 13.11.2011
Сообщений: 65
20.11.2011, 16:30     Линейный односвязный список и Бинарное дерево #2
это создание трех списков, считывание первых двух с клавиатуры..
дальше объединяй их в третий, а там сортируй)
можно еще на считывание добавить првоерку на ввод возрастающих значений..
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
struct first
{
    int x;
    first *next;
};
struct second
{
    int x;
    second *next;
};
 
struct three
{
    int x;
    three *next;
};
first *head1 = NULL;
second *head2 = NULL;
three *head3 = NULL;
int n, m = 0;
//первые элементы трех списков,
cout << "Vvedite kolichestvo elementov 1 spiska:" << endl;
cin >> n;
m += n;
cout << "Vvedite elementi 1 spiska:" << endl;
first *curpos1;
if (head1 == NULL)
{
    head1 = new first;
    cin >> head1->x;
}
curpos1 = head1;
for (int i = 0; i < n; i++)
{
    curpos1->next = new first;
    curpos1 = curpos1->next;
    cin >> curpos1->x; 
}
cout << "Vvedite kolichestvo elementov 2 spiska:" << endl;
cin >> n;
m += n;
cout << "Vvedite elementi 2 spiska:" << endl;
second *curpos2;
if (head2 == NULL)
{
    head2 = new first;
    cin >> head2->x;
}
curpos2 = head2;
for (int i = 0; i < n; i++)
{
    curpos2->next = new first;
    curpos2 = curpos2->next;
    cin >> curpos2->x; 
}
cooller51190555
0 / 0 / 0
Регистрация: 06.05.2011
Сообщений: 34
20.11.2011, 16:53  [ТС]     Линейный односвязный список и Бинарное дерево #3
а где тут main то нужен? и подскажите какие вообще библиотеки необходимы?
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
20.11.2011, 17:03     Линейный односвязный список и Бинарное дерево #4
Цитата Сообщение от Yakoot Посмотреть сообщение
дальше объединяй их в третий, а там сортируй)
можно без сортировки обойтись, первые два уже отсортированы, так проще будет просто сравнивать и выбирать элемент либо из первого, либо из второго
Yakoot
15 / 15 / 2
Регистрация: 13.11.2011
Сообщений: 65
20.11.2011, 17:11     Линейный односвязный список и Бинарное дерево #5
ну объявления до майна, все остальное в майне..

подключать
C++
1
2
#include <iostream>
using namespace std;
cooller51190555
0 / 0 / 0
Регистрация: 06.05.2011
Сообщений: 34
20.11.2011, 17:20  [ТС]     Линейный односвязный список и Бинарное дерево #6
Насколько я понял вот так вот получается?
ТОлько у меня почему-то выдаёт ошибку на head 2
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <iostream>
#include <iomanip>
 
using namespace std;
struct first
{
    int x;
    first *next;
};
struct second
{
    int x;
    second *next;
};
 
struct three
{
    int x;
    three *next;
};
int main(){
first *head1 = NULL;
second *head2 = NULL;
three *head3 = NULL;
int n, m = 0;
//ïåðâûå ýëåìåГ*ГІГ» òðåõ ñïèñêîâ,
cout << "Vvedite kolichestvo elementov 1 spiska:" << endl;
cin >> n;
m += n;
cout << "Vvedite elementi 1 spiska:" << endl;
first *curpos1;
if (head1 == NULL)
{
    head1 = new first;
    cin >> head1->x;
}
curpos1 = head1;
for (int i = 0; i < n; i++)
{
    curpos1->next = new first;
    curpos1 = curpos1->next;
    cin >> curpos1->x; 
}
cout << "Vvedite kolichestvo elementov 2 spiska:" << endl;
cin >> n;
m += n;
cout << "Vvedite elementi 2 spiska:" << endl;
first *curpos2;
if (head2 == NULL)
{
    head2 = new first;
    cin >> head2->x;
}
curpos2 = head2;
for (int i = 0; i < n; i++)
{
    curpos2->next = new first;
    curpos2 = curpos2->next;
    cin >> curpos2->x; 
}
 
system ("PAUSE");}
Yakoot
15 / 15 / 2
Регистрация: 13.11.2011
Сообщений: 65
20.11.2011, 17:24     Линейный односвязный список и Бинарное дерево #7
упс..
Цитата Сообщение от cooller51190555 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
first *curpos2;
if (head2 == NULL)
{
    head2 = new first;
    cin >> head2->x;
}
curpos2 = head2;
for (int i = 0; i < n; i++)
{
    curpos2->next = new first;
    curpos2 = curpos2->next;
    cin >> curpos2->x; 
}
там ошибочки))
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
second *curpos2;
if (head2 == NULL)
{
    head2 = new second;
    cin >> head2->x;
}
curpos2 = head2;
for (int i = 0; i < n; i++)
{
    curpos2->next = new second;
    curpos2 = curpos2->next;
    cin >> curpos2->x; 
}
вот так надо
cooller51190555
0 / 0 / 0
Регистрация: 06.05.2011
Сообщений: 34
20.11.2011, 17:38  [ТС]     Линейный односвязный список и Бинарное дерево #8
ооо отлично теперь ошибок не выдаёт сейчас буду разбираться с выводом списков а затев чтоб всё запихнуть в третий а потом сортировать
Yakoot
15 / 15 / 2
Регистрация: 13.11.2011
Сообщений: 65
20.11.2011, 17:47     Линейный односвязный список и Бинарное дерево #9
Цитата Сообщение от go Посмотреть сообщение
можно без сортировки обойтись, первые два уже отсортированы, так проще будет просто сравнивать и выбирать элемент либо из первого, либо из второго
еще вот так можно, угу)
cooller51190555
0 / 0 / 0
Регистрация: 06.05.2011
Сообщений: 34
20.11.2011, 23:08  [ТС]     Линейный односвязный список и Бинарное дерево #10
вывод списков вот так будит
C++
1
2
cout << curpos1;
cout << curpos2;
Добавлено через 1 час 42 минуты
???????????????????

Добавлено через 3 часа 35 минут
Аууууууууууууууууууууууууу

Добавлено через 28 секунд
А нАсчёт второй задачи кто-нибудь может помочь?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2011, 13:50     Линейный односвязный список и Бинарное дерево
Еще ссылки по теме:

C++ Линейный односвязный список
Односвязный линейный список C++
C++ Линейный односвязный список

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

Или воспользуйтесь поиском по форуму:
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
22.11.2011, 13:50     Линейный односвязный список и Бинарное дерево #11
Цитата Сообщение от cooller51190555 Посмотреть сообщение
вывод списков вот так будит
нет, если вы хотели только это узнать.
Yandex
Объявления
22.11.2011, 13:50     Линейный односвязный список и Бинарное дерево
Ответ Создать тему
Опции темы

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