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

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

Восстановить пароль Регистрация
 
sasha1301
1 / 1 / 0
Регистрация: 12.12.2012
Сообщений: 21
10.01.2014, 21:45     Определить класс список элементов #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
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++ Дан список, содержащий целые числа. определить количество различных элементов этого списка
C++ Создать класс Triad (тройка чисел) - определить методы; определить производный класс Date - переопределить методы
C++ создать список л3 из элементов входящих и в список л1 и в список л2
Определить класс список C++
C++ Определить класс химический элемент, содержащий информацию о названии элемента его химических свойствах. Определить класс медикаменты, содержащий разн
Класс "Список элементов" C++
C++ Класс "Список элементов"

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
newb_programmer
 Аватар для newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 553
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
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
11.01.2014, 01:38     Определить класс список элементов #3
1.функция суммы. У вас нод содержит поле int info, так вот и пройдитесь по всему списку и определите сумму и верните ее из функции класса.
2.что то типа этого static List getDifList(List & l1, List & l2).
Определите элементы которые есть в 1 списке но осутствют во втором и наоборот, из них и сформируете новый список.
Yandex
Объявления
11.01.2014, 01:38     Определить класс список элементов
Ответ Создать тему
Опции темы

Текущее время: 23:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru