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

Сформировать список L, включив в него по одному разу элементы, которые входят одновременно в оба списка L1 и L2. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Напечатать в алфавитном порядке все согласные буквы, входящие в текст. http://www.cyberforum.ru/cpp-beginners/thread1055882.html
Помогите, пожалуйста, решить задачу в С++. Напечатать в алфавитном порядке все согласные буквы, входящие в текст.
C++ Даны стороны двух треугольников. Найти сумму их площадей и периметров. 7 Помогите, пожалуйста, решить задачу в С++. Даны стороны двух треугольников. Найти сумму их площадей и периметров. http://www.cyberforum.ru/cpp-beginners/thread1055881.html
C++ Написать программу удаления из строки слова с заданным номером.
7. Помогите, пожалуйста, решить задачу в С++. Написать программу удаления из строки слова с заданным номером.
В предложении заменить каждую букву многоточием. C++
7. Помогите, пожалуйста решить задачу в С++. В предложении заменить каждую букву многоточием.
C++ В квадратной матрице вычислить сумму элементов, принадлежащей главной диагонале. http://www.cyberforum.ru/cpp-beginners/thread1055873.html
Помогите, пожалуйста, решить задачу в С++. В квадратной матрице вычислить сумму элементов, принадлежащей главной диагонале.
C++ Написать программу для вычисления суммы факториалов всех нечетных чисел от 1 до 9. Помогите, пожалуйста, решить задачу в С++. Написать программу для вычисления суммы факториалов всех нечетных чисел от 1 до 9. подробнее

Показать сообщение отдельно
Kosotornov
1 / 1 / 0
Регистрация: 24.05.2013
Сообщений: 41

Сформировать список L, включив в него по одному разу элементы, которые входят одновременно в оба списка L1 и L2. - C++

25.12.2013, 07:30. Просмотров 804. Ответов 9
Метки (Все метки)

Ребят я запутался окончательно.Пытался сам разобраться,но увы только все хуже стало.
задание:
Кликните здесь для просмотра всего текста
Сформировать список L, включив в него по одному разу элементы, которые входят
одновременно в оба списка L1 и L2.

Элементы я отсортировал,но как затереть одинаковые,не могу понять.
Кликните здесь для просмотра всего текста
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#include <iostream>
using namespace std;
template<class TYPE>
struct link
{
       TYPE data;
       link* next;
};
template<class TYPE>
class linklist
{
      private:
              link<TYPE>* first;
      public:
             linklist()
                       {first=NULL;}
      void additem(TYPE d);
      void display();
      void sort1(TYPE &);
      void dlinna(TYPE &);
      void elim (TYPE d,TYPE &);
      void sort2(TYPE &,TYPE &,TYPE &);
};
template<class TYPE>
void linklist<TYPE>::additem (TYPE d)
{
     link<TYPE>* newlink = new link<TYPE>;
     newlink->data=d;
     newlink->next=first;
     first=newlink;
}
template <class TYPE>
void linklist<TYPE>::dlinna(TYPE &d)
{
     link<TYPE>* current=first;
     cout<<endl;
     d=0;
     while(current!=NULL)
     {
            d++;
            current=current->next;
     }
}
template <class TYPE>
void linklist<TYPE>::display()
{
     link<TYPE>* current=first;
     cout<<endl;
     while(current!=NULL)
     {
            cout<<' '<<current->data;
            current=current->next;
     }
}
template <class TYPE>
void linklist<TYPE>::elim(TYPE i,TYPE &r)
{
     link<TYPE>* current=first;
     for(int j=0;j<i;j++){
     current=current->next;}
     r=current->data;
}
template <class TYPE>
void linklist<TYPE>::sort1(TYPE &d)
{bool flag=false;TYPE x;
     link<TYPE>* current=first;
     cout<<endl;
     while(current!=NULL)
     {
            x=current->data;
            if (x==d) {flag=true;};
            current=current->next;
     };
if (flag==true){d=1;}     
}
template <class TYPE>
void linklist<TYPE>::sort2(TYPE &i,TYPE &z,TYPE &n)
{
 link<TYPE>* current=first;
 link<TYPE>* cur;
 for (int j=0;j<=i;j++)
 {
 current=current->next;  
 }
 for (int j=i;j<=n;j++)
 {   
     if(z==current->data)
     {cur = current; 
     current = current -> next; 
     delete(cur); 
     cur = NULL; 
     n--;
     }
     else{current=current->next;}
 }
}
 
int main ()
{int e=1,x,n,z,k;
    setlocale(0, "rus" );
    linklist<int> ld;
    linklist<int> ls;
    linklist<int> li;
    cout<<"Формируем перввый список"<<endl;
    while(e==1){
    cout<<"Введите элемент"<<endl;
    cin>>x;   
    ld.additem(x);
    cout<<"Добавить еще элемент?"<<endl;
    cout<<"1.Да"<<endl;
    cout<<"2.Нет"<<endl;
    cin>>e;
    }
    e=1;
    cout<<"Формируем второй список"<<endl;
    while(e==1){
    cout<<"Введите элемент"<<endl;
    cin>>x;   
    ls.additem(x);
    cout<<"Добавить еще элемент?"<<endl;
    cout<<"1.Да"<<endl;
    cout<<"2.Нет"<<endl;
    cin>>e;
    }
    cout<<endl<<"Первый список:"<<endl;
    ld.display();
    cout<<endl<<"Второй список:"<<endl;
    ls.display();
    ls.dlinna(n);
    for (int i=0;i<n;i++){
        ls.elim(i,z);
        k=z;
        ld.sort1(z);
    if (z==1){li.additem(k);}}
    li.dlinna(n);
    for (int i=0;i<n;i++){
        li.elim(i,z);
        li.sort2(i,z,n);
    }
    cout<<endl<<"Результирующий список имеет вид:"<<endl;
    li.display();
    cin>>e;
    return 0;
}


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