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

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

Войти
Регистрация
Восстановить пароль
 
Uz
0 / 0 / 0
Регистрация: 05.07.2012
Сообщений: 23
#1

Сравнение элементов двух однонаправленных линейных списков - C++

29.08.2012, 16:15. Просмотров 1229. Ответов 1
Метки нет (Все метки)

А как сравнить элементы двух списков? Чтобы при совпадении элементов счётчик прибавлял единичку? Если список вот так задан:
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
#include <iostream>
#include <conio.h>
#include <fstream> 
using namespace std;
struct Element //Структура с инфополями и адресным полем
{
 int x; //Инфополе. Значения из x будут передаваться в список
 Element *Next; //Адресное поле
};
class Spisok
{
 Element *Head; 
 Element *Tail;
public:
 Spisok():Head(NULL),razmer(0) {}; //Инициализация значений с помощью конструктора
 ~Spisok();
 void Add(int x); 
 void Show();
 int razmer;
 Element* getHead(); // метод для получения указателя на начало списка.  
};
Spisok::~Spisok() //Деструктор 
{
 while (Head!=NULL)  //Пока по адресу не пусто 
    {    
     Element *temp=Head->Next; //Временная переменная для хранения адреса следующего элемента
     delete Head; //Освобождаем адрес, обозначающий начало
     Head=temp; //Меняем адрес на следующий
    }
}
Element* Spisok::getHead()
{
 return Head; // возвращает указатель на начало списка.
}
void Spisok::Add(int x) //Функция добавления элементов в список
{ 
 Element *temp=new Element; //При каждом вызове выделяется память
 if(Head == NULL)
 Head = temp;
 else
 Tail->Next = temp;
 temp->x=x;
 temp->Next = NULL;
 Tail=temp;
 ++razmer;
}
void Spisok::Show()
{
 Element *Temp = Head;
 while(Temp != NULL)
    {
     cout << Temp->x << " ";
     Temp = Temp->Next;
    }
 cout << endl << "Количество элементов в списке равно:" << razmer << endl;
}
Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.08.2012, 16:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сравнение элементов двух однонаправленных линейных списков (C++):

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

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

Организовать представление множеств в виде линейных однонаправленных списков - C++
Даны два множества А и В. Организовать представление множеств в виде линейных однонаправленных списков. Мощность множеств и элементы...

Из двух однонаправленных списков сформировать новый список - C++
Из двух однонаправленных списков сформировать новый список, следующим образом: сначала записать четные по индексу элементы первого списка,...

Сравнение двух списков - C++
Доброго всем времени суток. Изначальное задание было вот таким - &quot;написать программу, содержащую функцию, которая определяет, входит...

Сравнение двух списков, на основе vector <string> - C++
# include &lt;iostream&gt; # include &lt;string&gt; # include &lt;fstream&gt; # include &lt;vector&gt; # include &lt;iterator&gt; # include &lt;algorithm&gt; ...

1
zitxbit
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
29.08.2012, 18:48 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int compare(Element* e1, Element* e2)
{
    if (sizeof(e1) != sizeof(e2))
        return -1;
 
    int count = 0;
    while (e1 != NULL && e2 != NULL)
    {
        if (e1->x == e2->x) count++;
        e1 = e1->Next;
        e2 = e2->Next;
    }
}
3
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.08.2012, 18:48
Привет! Вот еще темы с ответами:

Сравнение 2-х списков и удаление одинаковых элементов из 2-го списка - C++
# include &lt;iostream&gt; # include &lt;string&gt; # include &lt;fstream&gt; # include &lt;vector&gt; # include &lt;iterator&gt; # include &lt;algorithm&gt; ...

Объединение двух списков в один без повтора элементов (С++) - C++
нужно дописать функцию, которая делает из двух списков один (новый), в котором все элементы разные, то есть не повторяются. Спасибо! ...

Сравнение двух элементов вектора - C++
Напишите функцию, читающую последовательность строк из стандартного ввода до тех пор, пока одно и то же слово не встретится два раза подряд...

Сравнение элементов двух массивов - C++
#include &lt;iostream&gt;; #include &lt;iostream&gt; #include&lt;locale&gt; using namespace std; int main() { setlocale(LC_ALL,&quot;Rus&quot;); int a; ...


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

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

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