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

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

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

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

10.01.2014, 21:45. Просмотров 661. Ответов 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();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2014, 21:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определить класс список элементов (C++):

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

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

Создать базовый класс «Список» и класс-потомок «Упорядоченный список» - C++
Создать базовый класс «список», определив в нем функции добавления в начало списка, удаления N-го элемента списка, вывода элементов списка...

Создать класс Элемент списка (Node), а затем класс Список (List) - C++
Задание: Создать класс Элемент списка (Node), а затем класс Список (List). В зависимости от варианта список должен быть одно или...

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

Создать класс Triad (тройка чисел) - определить методы; определить производный класс Date - переопределить методы - C++
Создать класс Triad (тройка чисел); определить методы увеличения полей на 1. Определить производный класс Date с полями: год, месяц и день....

2
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;
}
0
egor2116
342 / 373 / 42
Регистрация: 20.01.2013
Сообщений: 1,132
11.01.2014, 01:38 #3
1.функция суммы. У вас нод содержит поле int info, так вот и пройдитесь по всему списку и определите сумму и верните ее из функции класса.
2.что то типа этого static List getDifList(List & l1, List & l2).
Определите элементы которые есть в 1 списке но осутствют во втором и наоборот, из них и сформируете новый список.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2014, 01:38
Привет! Вот еще темы с ответами:

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

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

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

Реализовать пользовательский класс "Двунаправленный список"; реализовать добавление и удаление элементов - C++
Записи в линейном списке содержат ключевое поле типа *char(строка символов). Сформировать двунаправленный список. Удалить К элементов с...


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

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

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