0 / 0 / 0
Регистрация: 13.05.2015
Сообщений: 17
1

В списке L из каждой группы подряд идущих элементов с равными значениями оставить только один

13.12.2015, 20:46. Показов 5487. Ответов 1
Метки нет (Все метки)

В списке L из каждой группы подряд идущих элементов с равными значениями оставить только один.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.12.2015, 20:46
Ответы с готовыми решениями:

В списке L из каждой группы идущих подряд равных элементов оставить только один
опишите программу которая в списке L из каждой группы идущих подряд равных элементов оставляет...

В списке L из каждой группы подряд идущих равных элементов оставить только один элемент
В списке L из каждой группы подряд идущих равных элементов оставить только один элемент Например,...

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

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

1
836 / 639 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
13.12.2015, 23:03 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
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <iostream>
 
struct slist {
    int    val;
    slist* next;
};
void slist_remrep(slist*& lst);
void slist_copy(slist*& lst, const int* fa, const int* la);
void slist_clear(slist* lst);
 
int main(void){
    slist* L = NULL;
 
    int a[] = {0,0,0,0,1,1,2,2,2,3,4,4,4,4,5,5,6,7,7,7}; 
    slist_copy(L, a, a + sizeof(a)/sizeof(a[0]));
    
    slist_remrep(L);
    for(const slist* p = L; p != NULL; p = p->next)
        std::cout << p->val << ' ';
    std::cout << std::endl;
 
    slist_clear(L);
    return 0;
}
 
//удаление подряд идущих одинаковых значений
void slist_remrep(slist*& lst){
    slist* t, *i, *j, *p = lst;
    while(p != NULL){
        i = p->next;
        while((i != NULL) && (i->val == p->val))
            i = i->next;
 
        if(i != p->next){
            j = p->next;
            while(j != i){
                t = j;
                j = j->next;
                delete t;
            }
            p = p->next = i;
            continue;
        }
        p = p->next;
    }
}
 
//копирование массива
void slist_copy(slist*& lst, const int* fa, const int* la){
    slist* p, *t = NULL;
    lst = NULL;
    while(fa != la){
        p = new (std::nothrow) slist();
        if(p == NULL)
            break;
        p->val  = *fa++;
        p->next = NULL;
        if(lst == NULL)
            lst = t = p;
        else {
            t->next = p;
            t = p;
        }
    }
}
 
//удаление всех
void slist_clear(slist* lst){
    slist* t;
    while(lst != NULL){
        t   = lst;
        lst = lst->next;
        delete t;
    }
}
Пример работы кода
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.12.2015, 23:03
Помогаю со студенческими работами здесь

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

В списке L из каждой группы подряд идущих элементов оставляет только один
составить программу, которая в списке L из каждой группы подряд идущих элементов оставляет только...

В списке L с каждой группы подряд равных элементов оставить только один элемент
Опишите программу , которая в списке L с каждой группы подряд равных элементов оставляет только...

Из каждой группы подряд идущих одинаковых слов в списке оставить только одно
Составить программу, которая формирует список с двумя связями, добавляет в него не менее 20 слов на...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru