3 / 3 / 3
Регистрация: 10.03.2013
Сообщений: 45
1

Как удалить одинаковые элементы из списка?

02.10.2013, 22:00. Показов 2373. Ответов 3
Метки нет (Все метки)

Нужно удалить из списка повторяющиеся элементы. Например в списке 1 1 0 0 3 3 оставить только 1 0 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
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include<iostream>
#include<string>
using namespace std;
 
struct element
{
    int data;
    element * next;
};
 
typedef element * ptr;
 
ptr AddElem(ptr head, int elem)
{
    ptr x;
 
    x = (element*)malloc(sizeof(element));
    x->data= elem;
    x->next = head;
    head = x;
    return head;
}
 
void Print(ptr head)
{
    ptr x;
    x = head;
    while(x!=NULL)
    {
        cout<<x->data<<", ";
        x = x->next;
    }
    cout<<"NULL"<<endl;
}
 
 
ptr PrintDouble(ptr f, ptr s, ptr dst)
{
    ptr curf = f, curs, cur;
    while(curf) {
        curs = s;
        while(curs) {
            if (curf->data==curs->data) {
                ptr temp;
                temp = new element;     
                temp->data = curf->data;
                temp->next = 0;
                if (!dst) { //первый элем.
                    dst = temp;
                    cur = temp; //это курсор, чтоб не потерять голову списка
                } 
                else {
                    cur->next = temp;
                    cur = cur->next;
                }   
                break;
            }
        curs = curs->next;
        }
        curf = curf->next;
        
    }   
    return dst;
}
 
 
int main()
{
    ptr head,List,List2,dst;
    int elem,i ,n;
    cout<<"Enter the number of elem:\n";    cin>>n;
    head = NULL;    List = NULL;    List2 = NULL;   dst = NULL;
    
    cout<<"Vvedite chisla v pervui spisok!\n";
    
    for(i = 0; i<n; i++)
    {
        cin>>elem;
        List = AddElem(List, elem);
    }
 
    cout<<"Vvedite chisla v drugui spisok!\n";
    
    for(i = 0; i<n; i++)
    {
        cin>>elem;
        List2 = AddElem(List2, elem);
    }
    cout<<"first list:\n";  Print(List);
    cout<<"\nsecond list:\n";   Print(List2);
        
    cout<<"\nNew List: ";
 
    head = PrintDouble(List,List2,dst);
    Print(head);
    
 
    system("pause");
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.10.2013, 22:00
Ответы с готовыми решениями:

Как удалить одинаковые элементы ArrayList
Есть ArrayList. Он String. Там куча ссылок на картинки. Некоторые ссылки повторяются. Как удалить...

Как удалить одинаковые элементы из массива?
Подскажите как удалить одинаковые элементы или например все одинаковые цифры (2) из одномерного...

Как можно вывести все одинаковые элементы из списка, картежа или словаря
word = str(input()) a = 67 def letter_a(a): a = a ** 3 a = int(bin(a)) print(a)

Переставить элементы списка так, чтобы одинаковые элементы оказались рядом
Помогите с функцией. ; Функция, переставляющая элементы списка таким образом, чтобы одинаковые...

3
Заблокирован
02.10.2013, 22:06 2
в джи (Г..) коде лень разбираться, в общем для копирования уникальных элементов есть std::unique_copy
0
3777 / 3093 / 856
Регистрация: 25.03.2012
Сообщений: 11,440
Записей в блоге: 1
02.10.2013, 22:08 3
Цитата Сообщение от newbie666 Посмотреть сообщение
в джи (Г..) коде лень разбираться, в общем для копирования уникальных элементов есть std::unique_copy
тут тебе не стандартный список или ещё какой stl контейнер
0
3 / 3 / 3
Регистрация: 10.03.2013
Сообщений: 45
02.10.2013, 22:13  [ТС] 4
newbie666, мне как-бы надо самому код написать, а не использовать готовый стандартный.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.10.2013, 22:13
Помогаю со студенческими работами здесь

Clojure Определить функцию переставляющую элементы списка L таким образом, чтобы одинаковые элементы оказались рядом
Переставляющую элементы списка L таким образом, чтобы одинаковые элементы оказались рядом. ...

Как удалить элементы из списка?
У меня есть список который выглядить так var = как мне получить вот это: var =

Как удалить элементы из списка?
Завтра сдавать. Вообще не знаю, как удалить. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include...

Удалить из списка нечетные элементы. Вывести оставшиеся элементы списка
Дано неотрицательное N и набор из N чисел. Создать линейно-связанный список, содержащий исходные...


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

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

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