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

Односвязный список - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Наследование классов: реализовать классы точка, линия, треугольник, круг http://www.cyberforum.ru/cpp-beginners/thread681679.html
задачка интересная,но как сделать ее-я не представляю... можете помочь..
C++ В переменную записывается пустота Здравствуйте . У меня вот образовалась такая проблема: решал несколько задач различных на одну тему, решил написать одну программу, в которой будет решение всех задач. То есть будет выбор задачи в... http://www.cyberforum.ru/cpp-beginners/thread681676.html
C++ Объекты классов в динамической памяти
Я создаю объект класса в динамической памяти ( например map *obj = new map; ) Вопрос: как сделать трехмерый(или хотя бы двумерный) массив определенных структур в классе(массив в классе, а затем в...
C++ Определение столкновений в простой 2D игре
Пишу 2D игру (что-то вроде марио :D ). В ней есть игрок и всякие предметы. Надо сделать функцию которая будет проверять не вошёл ли игрок в стену или в ящик, и если вошёл то вытащить его в самое...
C++ Написать рекурсивную функцию вычисления суммы цифр натурального числа http://www.cyberforum.ru/cpp-beginners/thread681655.html
Нужно написать рекурсивную функцию вычисления суммы цифр натурального числа. Я написал нижеследующее что тоже работает, но это не рекурсивная функция, как написать рекурсивную? #include...
C++ написать рекурсивную функцию, которая взводит число в степень путем многократного умножения числа на самое себя. Помогите написать программу , которая запрашивает два числа (1-ое число, 2 -показатель его степени). И надо написать рекурсивную функцию, которая взводит число в степень путем многократного... подробнее

Показать сообщение отдельно
nexxezz
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 16

Односвязный список - C++

27.10.2012, 13:54. Просмотров 670. Ответов 0
Метки (Все метки)

Class.h
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
#include "stdafx.h"
#include<iostream>
#include<string>
 
using namespace std;
 
struct element
{
element* next;
string name;
string surname;
string addres;
};
 
class list
{
element *first;
public:
list(){first=NULL;}
void Add();
void Print();
void Search();
void Delete();
};
Addres_Book.cpp
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
#include "stdafx.h"
#include "Class.h"
#include <iostream>
#include <string>
using namespace std;
void list::Add()
{
    string name_in,surname_in,addres_in;
    cout<<"Add name:";
        cin>>name_in;
cout<<"Add surname:";
    cin>>surname_in;
cout<<"Add addres:";
    cin>>addres_in;
    if (first==NULL)
    {
        
    first=new element;
 
first->name=name_in;
first->surname=surname_in;
first->addres=addres_in;
first->next=NULL;
}
else
{
    element *tmp=first;
    while(tmp->next!=0)
    {
        tmp=tmp->next;
    }
    element*temp=new element;
    temp->name=name_in;
    temp->surname=surname_in;
    temp->addres=addres_in;
    temp->next=NULL;
    tmp->next=temp;
    }
    }
 
 
void list::Print()
{
    element*tmp=first;
    if(first==NULL)
    {
        cout<<"There no list elements"; 
    }
    else
    {
        while (tmp!=0)
        {
            cout<<"\n"<< "Name is:"<<tmp->name<<""<<"\n"<<"\n";
            cout<< "Surname is:"<<tmp->surname<<""<<"\n"<<"\n";
            cout<< "Addres is:"<<tmp->addres<<""<<"\n";
            tmp=tmp->next;
        }
    }
}
 
void list::Search()
{
    string name_in;
    cout<<"Parametr to search:";
    cin>>name_in;
element *tmp=first;
while(tmp!=NULL)
{
    if(tmp->name==name_in||tmp->addres==name_in||tmp->surname==name_in)
    {
        cout<<"\n"<<"Result is:"<<"\n"<<tmp->name<<""<<"\n";
    cout<<tmp->surname<<""<<"\n";
    cout<<tmp->addres<<""<<"\n";
    break;
    }
    tmp=tmp->next;
}
if(tmp==NULL)
{
    cout<<"Error...Not found"<<"\n";
}
}
// 
void list::Delete()
{
    string name_in;
    cout<<"Parametr to delete:"<<"\n";
    cin>>name_in;
int i=0;
element *tmp=first;
while(tmp->name!=name_in&&tmp!=NULL)
{
tmp=tmp->next;
i++;
}
if(tmp==first&&name_in==first->name)
{
first=first->next;
delete tmp;
cout<<"Element deleted"<<"\n";
return;
}
else if(tmp->next==NULL&&tmp->name==name_in) 
{
i--;
tmp=first;
while(i>0)
{
tmp=tmp->next;
i--;
}
delete tmp->next;
tmp->next=NULL;
cout<<"Element deleted"<<"\n";
return;
}
 
else if(tmp->name==name_in)
{
i--;
tmp=first;
while(i>0)
{
tmp=tmp->next;
i--;
}
element *temp=(tmp->next)->next;
delete tmp->next;
tmp->next=temp;
cout<<"Element deleted"<<"\n";
}
}
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
//#define TRUE FALSE
#include "Class.h"
#include <string>
using namespace std;
void main()
{ list ob;
int i;
cout<<"Welcome to the Adress book."<<"\n"<<"1.Add a new contact"<<"\n"<<"2.Print contacts"<<"\n"<<"3.Delete contact"<<"\n"<<"4.Search contact"<<"\n";
while(1)
{
    cin>>i;
    switch(i){
    case 1: ob.Add();break;
case 2: ob.Print();break;
case 3: ob.Delete();break;
case 4: ob.Search();break;
    }
};
}

Объясните пожалуйста как происходит удаление(если можно прокомментируйте) и как происходит добавление в список если уже создан 1 элемент.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.