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

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

Войти
Регистрация
Восстановить пароль
 
mrKi
2 / 2 / 0
Регистрация: 01.08.2013
Сообщений: 60
#1

Конструктор-копирования связного списка - C++

28.08.2013, 23:57. Просмотров 1051. Ответов 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
class part
{
      public:
             //ГЉГ®Г*ñòðóêòîð,äåñòðóòîð,ГЄГ®Г*ñòðóêòîð êîïèðîâГ*Г*ГЁГї.
             part()
             {
                   item=0;
                   next=NULL;
             }
             part(int i,part*n=NULL)
             {
                   next=n;
                   item=i;
             }
             ~part(){}
             part(part&src)
             {
                           src.item=this->item;
                           src.next=this->next;
             }
             // Ìåòîä âûâîäÿùèé Г*Г* ГЅГЄГ°Г*Г* Г§Г*Г*Г·ГҐГ*ГЁГҐ îáúåêòГ*.
             void showItem(){cout<<"Item="<<item<<endl;}
             
             part*next;
             int item;
};
class partList
{
      public:
             //ГЉГ®Г*ñòðóòîðû,ГЄГ®Г*ñòðóêòîð êîïèðîâГ*Г*ГЁГї,äåñòðóêòîð.
             partList(int i)
             {
                          last=new part;
                          first=new part;
                          part*temp=new part(i,last);
                          temp->next=last;
                          first->next=temp;
                          countOfPart++;
             }
             partList()
             {
                       last=new part;
                       first=new part;
                       first->next=last;
             }
             partList(partList &src)
             {
                               this->first=new part;
                               if(src.getCountOfPart()) 
                               {
                                           int i=src.getCountOfPart();
                                           part *temp=src.first->next;
                                           this->first=new part;
                                           this->first->next=new part(temp->item);
                                           i--;
                                           part *temp2=this->first->next;
                                           while(i)
                                           {
                                                   temp=temp->next;
                                                   temp2->next=new part(temp->item);
                                                   temp2=temp2->next;
                                                   i--;
                                           }
                               }
             }
            //Методы класса
             int getCountOfPart(){return countOfPart;}
             ~partList()
             {
                        part *temp=first->next;
                        part *wtd;
                        while(temp->next)
                        {
                                         wtd=temp;
                                         temp=temp->next;
                                         delete wtd;
                        }
             }
             void add(int i)
             {
                  part *temp=first->next;
                  while(temp->next) temp=temp->next;
                  temp->item=i;
                  last=new part;
                  temp->next=last;
                  countOfPart++;
             }
             void add(partList &wta)
             {
                  part *temp=wta.first->next;
                  while(temp->next) 
                  {
                  this->add(temp->item);
                  this->countOfPart++;
                  temp=temp->next;
                  }
             }
             void show()
             {
                  part *temp=first->next;
                  while(temp->next)
                  {
                                   temp->showItem();
                                   temp=temp->next;
                  }
             } 
             
    private:
              part*first;
              part*last;
              int countOfPart;
};
Добавлено через 59 минут
Написал вот это,но когда программа доходит до строчки в котором он используется вылетает ошибка
C++
1
2
3
4
5
  partList(partList &src)
             {
                     for(part *temp=src.first->next;temp->next;temp=temp->next)
                     add(temp->getItem());          
             }
Добавлено через 10 минут
Проблема решена. Надо было только выпить чашку кофе и немного подышать свежим воздухом Тебя можно удалить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.08.2013, 23:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Конструктор-копирования связного списка (C++):

Конструктор копирования для односвязного списка - C++
Запутался уже, подскажите пожалуйста что я делаю не так в конструкторе копирования. файл list.h #ifndef LIST_H #define LIST_H ...

Не могу сделать чтобы класс содержал основной конструктор и конструктор копирования - C++
Разработать класс ThreeAngle для работы с плоскими треугольниками. В качестве членов-данных задаются длины трех сторон треугольника. Класс...

Не могу правильно сделать конструктор и конструктор копирования и принадлежность точки с заданными координатами треугольнику - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;windows.h&gt; #include &lt;math.h&gt; #include &lt;algorithm&gt; using...

Конструктор инициализации, конструктор копирования, деструктор - C++
Я сделал почти задание по перегрузке операторов. Осталось одно, тоесть три: конструктор инициализации, конструктор копирования, деструктор....

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

Создание связного списка - C++
нужно создать связной список, что собственно уже сделал. что нужно: -функции: -root (выводит список) -push (+1 елемент в...

2
SatanaXIII
Супер-модератор
Эксперт С++
5638 / 2673 / 252
Регистрация: 01.11.2011
Сообщений: 6,569
Завершенные тесты: 1
29.08.2013, 08:26 #2
Цитата Сообщение от mrKi Посмотреть сообщение
Тебя можно удалить?
Тебя можно написать какова была ошибка и как вы ее решили.
0
mrKi
2 / 2 / 0
Регистрация: 01.08.2013
Сообщений: 60
31.08.2013, 16:28  [ТС] #3
SatanaXIII, в чем проблема я и сам толком не понял,компилятор не ругался,а вот программа не работала как нужно.
Решил вот так
C++
1
2
3
4
5
6
7
8
 partList(partList &src)
             {
                       countOfPart=0;                               
                       last=new part;
                       first=new part;
                       first->next=last;   
                       add(src);    
             }
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.08.2013, 16:28
Привет! Вот еще темы с ответами:

сортировка связного списка - C++
Привет всем! пришлите пожалуйста код реализации сортировки односвязного списка (желательно с комментарием)! а то у меня совсем ничего...

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

Сортировка связного списка - C++
Привет всем! как правильно написать сортировку для связного циклического списка ? помогите пожалуйста... #include &lt;iostream&gt; using...

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


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

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

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