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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
cooller51190555
0 / 0 / 0
Регистрация: 06.05.2011
Сообщений: 34
#1

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

20.11.2011, 16:08. Просмотров 1419. Ответов 10
Метки нет (Все метки)

Необходимо написать программу, но вот что-то затрудняюсь
1.Два линейных односвязных списка заданы указателями на первый элемент. Целые числа, хранимые в узлах каждого из списков, упорядочены по возрастанию. Необходимо построить третий список, содержа-щий (также в порядке возрастания) все числа, занесенные в исходные списки.
2.Бинарное дерево задано указателем на корень. Реализовать программу, обеспечивающую вывод на экран ключей дерева по уровням с обратным порядком следования элементов (справа налево снизу вверх). Допускается использование только динамических структур данных.

Добавлено через 36 минут
Помогите кто может
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2011, 16:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Линейный односвязный список и Бинарное дерево (C++):

Линейный односвязный список - C++
List *begin = NULL; begin = new List; List *begin1 = NULL; begin1 = new List; List *begin2 = NULL; begin2 = new List; List...

Линейный односвязный список - C++
void Read() { Node *cur = head; ifstream if_read; if_read.open("BDname.txt"); if (!if_read){ cout << "нет BDname.txt" <<...

Односвязный линейный список - C++
Текст помощи для не которой программы организован в виде линейного списка Каждая компонента текста помощи содержит термин (слово) и...

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

Задали односвязный линейный список с целыми числами. Создать новый список, который содержит элементы заданного списка в обратном порядке - C++
Задали односвязный линейный список с целыми числами. Создать новый список, который содержит элементы заданного списка в обратном порядке.

Что такое линейный односвязный список? - C++
Люди, помогите разобраться со связными структурами данных, а именно с линейным односвязным списком. Очень-очень нужно написать...

10
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; 
}
0
cooller51190555
0 / 0 / 0
Регистрация: 06.05.2011
Сообщений: 34
20.11.2011, 16:53  [ТС] #3
а где тут main то нужен? и подскажите какие вообще библиотеки необходимы?
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
20.11.2011, 17:03 #4
Цитата Сообщение от Yakoot Посмотреть сообщение
дальше объединяй их в третий, а там сортируй)
можно без сортировки обойтись, первые два уже отсортированы, так проще будет просто сравнивать и выбирать элемент либо из первого, либо из второго
0
Yakoot
15 / 15 / 2
Регистрация: 13.11.2011
Сообщений: 65
20.11.2011, 17:11 #5
ну объявления до майна, все остальное в майне..

подключать
C++
1
2
#include <iostream>
using namespace std;
0
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");}
0
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; 
}
вот так надо
1
cooller51190555
0 / 0 / 0
Регистрация: 06.05.2011
Сообщений: 34
20.11.2011, 17:38  [ТС] #8
ооо отлично теперь ошибок не выдаёт сейчас буду разбираться с выводом списков а затев чтоб всё запихнуть в третий а потом сортировать
0
Yakoot
15 / 15 / 2
Регистрация: 13.11.2011
Сообщений: 65
20.11.2011, 17:47 #9
Цитата Сообщение от go Посмотреть сообщение
можно без сортировки обойтись, первые два уже отсортированы, так проще будет просто сравнивать и выбирать элемент либо из первого, либо из второго
еще вот так можно, угу)
0
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 секунд
А нАсчёт второй задачи кто-нибудь может помочь?
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
22.11.2011, 13:50 #11
Цитата Сообщение от cooller51190555 Посмотреть сообщение
вывод списков вот так будит
нет, если вы хотели только это узнать.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2011, 13:50
Привет! Вот еще темы с ответами:

Создать линейный односвязный и двухсвязный список - C++
Нужна помощь,задание: Создать линейный односвязный список.Из списка удалить элемент стоящий перед минимальным элементом, затем элементы...

Создать линейный односвязный (двухсвязный) список - C++
Помогите пожалуйста решить задачу: Создать линейный односвязный (двухсвязный) список. Из списка удалить последнюю пару соседних...

Попытка реализовать односвязный линейный список - C++
Доброго времени суток! Пробую реализовать односвязный линейный список в виде структуры. #include &lt;iostream&gt; #include &lt;cmath&gt; using...

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


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

Или воспользуйтесь поиском по форуму:
11
Yandex
Объявления
22.11.2011, 13:50
Ответ Создать тему
Опции темы

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