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

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

Войти
Регистрация
Восстановить пароль
 
RESTY
5 / 5 / 0
Регистрация: 30.05.2012
Сообщений: 89
#1

Поиск под списка в списке - C++

21.09.2012, 20:19. Просмотров 422. Ответов 5
Метки нет (Все метки)

Написать функцию, которая находит в списке максимальный подсписок, в котором все элементы различны. Плюс написать функцию печати списка в прямом порядке (для проверки).

Вот мои наработки)
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
#include <iostream>
#include <conio>
#include <vector>
using namespace std;
 
struct Item{
        int data;
        Item *next;
};
 
void makelist(Item *&first,int n){
        first = new Item;
        cin >> first -> data ;
        Item *second = first;
        for(int i = 2;i <= n; i++){
                Item *third = new Item;
                cin >> third -> data;
                second -> next = third;
                second = third;
        }
second->next = NULL;
}
 
void printlist(Item *first){
        Item *cur = first;
        while(cur != NULL){
        cout << cur -> data<<" ";
        cur = cur -> next;
        }
}
 
void pomaxpod(Item *first){ // вот тут я и встрял...если кто поможет напишите пожалуйста коментарии буду очень благодарен!)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.09.2012, 20:19     Поиск под списка в списке
Посмотрите здесь:

Построить класс для работы с односвязным списком. Создать два списка: List1 и List2. Проверить, содержатся ли элементы списка List1 в списке List2 в у - C++
Построить класс для работы с односвязным списком. Создать два списка: List1 и List2. Проверить, содержатся ли элементы списка List1 в...

Выяснить, содержится ли каждая из фамилий списка 2 в списке 1 - C++
Получил задание на летнюю практику вот, собственно содержание: &quot;Заданы два перечня фамилий. Перечень 1 содержит n1 фамилию, перечень 2 - n2...

Поиск в списке - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;cstring&gt; #include &lt;windows.h&gt; using namespace std; struct element{ ...

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

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

Поиск элемента в списке. - C++
Есть список, который содержит объекты класа type. Мне нужно найти в этом списке объект, который будет отвечать некоторым условиям. Пробую...

удаление и поиск в списке - C++
Подскажите, как реализовать функции удаления и поиска числа в списке? Нужно, что бы удаление происходило по индексу элемента, а поиск по...

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

Поиск в лин. списке - C++
Помогите сделать сам поиск..я уже замучился.. вот что у меня сейчас { int...

Рекурсивный поиск в списке - C++
Добрый вечер. Я решал одну задачку из книги Х.Дейтела и П.Дейтела &quot;Как программировать на C++&quot; и у меня возникла одна проблема. ...

Поиск в двусвязном списке - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;cstring&gt; #include &lt;windows.h&gt; using namespace std; struct element{ ...

Поиск элемента в списке - C++
Добрый день! У меня есть набор некоторых значений, например такой: (&quot;0&quot;, &quot;1&quot;,&quot;6&quot;,&quot;7&quot;,&quot;8&quot;,&quot;9&quot;,&quot;10&quot;,&quot;11&quot;....) Мне же нежно среди...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
UFO94
263 / 252 / 13
Регистрация: 04.04.2012
Сообщений: 546
21.09.2012, 22:04     Поиск под списка в списке #2
А мы, в свою очередь, будем благодарны, если вы напишете коментарии к своему коду
RESTY
5 / 5 / 0
Регистрация: 30.05.2012
Сообщений: 89
21.09.2012, 22:14  [ТС]     Поиск под списка в списке #3
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
#include <iostream>
#include <conio>
#include <vector>
using namespace std;
 
struct Item{           //обьявление структуры
int data;
Item *next;
};
 
void makelist(Item *&first,int n){   // создание списка // список заполняется вручную
first = new Item;
cin >> first -> data ;
Item *second = first;
for(int i = 2;i <= n; i++){
Item *third = new Item;
cin >> third -> data;
second -> next = third;
second = third;
}
second->next = NULL;
}
 
void printlist(Item *first){                // вывод списка
Item *cur = first;
while(cur != NULL){
cout << cur -> data<<" ";
cur = cur -> next;
}
}
что тут не понятного?))) даже функции названы более мение понятно)
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
21.09.2012, 22:40     Поиск под списка в списке #4
Ну, как минимум, вариант алгоритма "в лоб" вы вполне можете написать. Т.е. берете первый элемент списка и идете от него дальше по списку, пока не встретите повторяющийся элемент. Как только встретили - смотрите на длину полученной подпоследоватльности. Затем берете следующий элемент списка и тд.
Конечно, есть более изящные алгоритмы. Но такой, я думаю, вам будет проще реализовать
RESTY
5 / 5 / 0
Регистрация: 30.05.2012
Сообщений: 89
21.09.2012, 23:12  [ТС]     Поиск под списка в списке #5
это я понимаю и даже сам написал бы но со списками туговато у меня по этому и прошу помочь.
RESTY
5 / 5 / 0
Регистрация: 30.05.2012
Сообщений: 89
16.12.2012, 01:54  [ТС]     Поиск под списка в списке #6
по мере моего обучения набираюсь ума)
вот рабочий код

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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include <iostream>
#include <set>
#include <windows.h>
 
struct Item{
        int data;
        Item *next;
};
 
void makelist(Item *&first,int n){
        first = new Item;
        std::cin >> first -> data ;
        Item *second = first;
        for(int i = 2; i <= n; i++){
                Item *third = new Item;
                std::cin >> third -> data;
                second -> next = third;
                second = third;
        }
    second->next = NULL;
}
 
void printlist(Item *first){
        Item *cur = first;
        while(cur != NULL){
            std::cout << cur -> data<<" ";
            cur = cur -> next;
        }
        std::cout << std::endl;
}
 
void pomaxpod(Item *first){
        Item *cur = first;
        Item *second = first;
        std::set <int> a;
        int dlin = 0,dlinmax = 0;
        while (cur != NULL){
            second = cur;
            while ( second != NULL){
                if ( a.count(second -> data) == 1 ){
                    if (dlin > dlinmax){
                        dlinmax = dlin;
                        dlin = 0;
                    }
                    a.clear();
                    a.insert(second -> data);
                    dlin = 0;
                    cur = second;
                    break;
                }
                a.insert (second -> data);
                second = second -> next;
                dlin++;
            }
            cur = second;
            a.clear();
        }
        if (dlin > dlinmax){
            dlinmax = dlin;
        }
        std::cout << dlinmax;
}
 
int main(){
        setlocale(LC_ALL,"");
        Item *first;
        int n;
 
        std::cout << "Введите количество элементов списка n = ";
        std::cin >> n;
 
        std::cout << "Ввод элементов : ";
        makelist(first,n);
 
        std::cout << "Вывод списка : ";
        printlist(first);
 
        std::cout << "Максимальная длина подсписка = ";
        pomaxpod(first);
        //std::system("pause");
return 0;
}
Yandex
Объявления
16.12.2012, 01:54     Поиск под списка в списке
Ответ Создать тему
Опции темы

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