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

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

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

Определить класс список элементов - C++

10.01.2014, 21:45. Просмотров 562. Ответов 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
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
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <time.h>
#include <stdlib.h>
using namespace std;
 
 
class List
{
public:
    List(List& list);
    List(int num);
    ~List();
    void out_list();
    void add_list(List& list);
    void insert(int elem);
private:
    struct node
    {
        int info;
        struct node *next;
    };
private:
    node* m_head;
    int count;
};
 
List::List(int num)
{
    m_head=NULL;
    for(int i=0;i<num;i++)
    {
        this->insert(rand()%100);
    }
}
 
List::List(List& list)
{
    m_head=NULL;
    node* p1=list.m_head;
    while(p1)
    {
        this->insert(p1->info);
        p1=p1->next;
    }
}
 
void List::insert(int elem)
{
    node* p = m_head;
    node* el = new node;
    el->info = elem;
    el->next = NULL;
    if(!m_head)
    {
        m_head = el;
    }else if(m_head->info>el->info)
    {
        el->next = m_head;
        m_head = el;
    }else
    {
        while(p->next)
        {
            if(p->info<=el->info && p->next->info>=el->info)
            {
                el->next = p->next;
                p->next = el;
                break;
            }
            p=p->next;
        }
        if(!p->next)
        {
            p->next = el;
        }
    }
}
List::~List()
{
    node* p =m_head;
    while(p)
    {
        node* temp = p;
        p=p->next;
        delete temp;
    }
}
void List::out_list()
{
    node* p = m_head;
    if(p)
    {
        while(p)
        {
            cout<<p->info<<' ';
            p=p->next;
        };
    }else
    {
        cout<<"empty list"<<endl;
    }
    cout<<endl;
}
 
void List::add_list(List& list)
{
    node* p1=list.m_head;
    while(p1)
    {
        this->insert(p1->info);
        p1=p1->next;
    }
}
 
void main()
{
    srand((unsigned)time(NULL));
 
    List list1(5);
    cout<<"List1:"<<endl;
    list1.out_list();
 
    List list2(list1);
    cout<<"List1:"<<endl;
    list2.out_list();
 
    List list3(6);
    cout<<"List3:"<<endl;
    list3.out_list();
 
    list2.add_list(list3);
    cout<<"List2+list3:"<<endl;
    list2.out_list();
 
 
    getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2014, 21:45     Определить класс список элементов
Посмотрите здесь:

Определить класс список элементов с конструкторами для определения списка по его размеру и копирования другого - C++
Определить класс список элементов. В определение класса включить два конструктора: для опре- деления списка по его размеру и путем...

Определить класс список - C++
Помогите пожалуйста с этой задачей, сколько пытаюсь ну никак не могу подружиться со списком... Собственно сама задача: &quot;Определить...

Класс "Список элементов" - C++
Понимаю что тем похожих милионы но 3 день пытаюсь что то найти и не выходит, задание: Определить класс список элементов. В определение...

Класс "Список элементов" - C++
Доброго времени суток. Имеется такой код его нужно довести до работоспособности. Структуры и классы. Ясно как это работает друг от друга,...

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

класс-список - C++
Помогите, пожалуста, я никак не могу разобраться с тем, что такое класс-список, как его реализовать... Совершенно запуталась... Приведите,...

Класс: двунаправленный список - C++
Здравствуйте! Есть задание: написать двунаправленный список в виде класса, для хранения в нем системных сообщений. Вот, что у...

Шаблонный класс Список - C++
Доброго времени суток, подскажите пожалуйста как правильно использовать шаблон в данном случае. Нужно использовать произвольный тип данных...

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

Класс Односвязный список - C++
Есть класс Односвязный список #include &quot;ListInterface.h&quot; #include &quot;Node.h&quot; //#include &quot;PrecondViolatedExcep.h&quot; template &lt; class...

Класс Линейный Список. - C++
#include &lt;iostream&gt; using namespace std; class Spisok { private: struct node { int elem; node...

Создать базовый класс список - C++
Создать базовый класс список. Реализовать на базе списка стек и очередь с виртуальными функциями вставки и вытаскивания нашел такой код,...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 555
11.01.2014, 01:30     Определить класс список элементов #2
sasha1301, ну вот примерное описание этих функций, могут быть неточности, но общая логика должна быть ясна.
если у вас переменная count это количество элементов в списке-незабывайте что ее нужно изменять при добавлении/удалении элементов!
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
bool Find(int x) {
    node* p=m_head;
    while (p!=0) {
        if (p->info==x)
            return true;
        p=p->next;
    }
    return false;
}
 
List& List::Create(List& n, List& m) {
    List temp;                          //необходим конструктор по умолчанию
    node* p=n.m_head;
    for (int i=0;i<n.count;i++) {
        if (!m.Find(p->info))
            temp.insert(p->info);
        p=p->next;
    }
    return temp;
}
 
int List::GetSum() {
    int sum=0;
    node* p=m_head;
    while (p!=0) {
        sum+=p->info;
        p=p->next;
    }
    return sum;
}
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
11.01.2014, 01:38     Определить класс список элементов #3
1.функция суммы. У вас нод содержит поле int info, так вот и пройдитесь по всему списку и определите сумму и верните ее из функции класса.
2.что то типа этого static List getDifList(List & l1, List & l2).
Определите элементы которые есть в 1 списке но осутствют во втором и наоборот, из них и сформируете новый список.
Yandex
Объявления
11.01.2014, 01:38     Определить класс список элементов
Ответ Создать тему
Опции темы

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