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

Шаблоны.Исправить ошибки. - C++

Восстановить пароль Регистрация
 
Romich41
 Аватар для Romich41
15 / 15 / 1
Регистрация: 01.11.2009
Сообщений: 188
05.04.2010, 21:07     Шаблоны.Исправить ошибки. #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
#include <iostream>
using namespace std;
 
template <class Data> class List{
    class Node{
    public:
        int d;
        Node *next, *prev;
        Node( Data dat = 0){d = dat; next = 0; prev = 0;}
    };
 
    Node *pbeg, *pend;
public:
    List(){pbeg = 0; pend = 0;}
    ~List();
    void add (Data d);
    Node * find(Data i);
    Node * insert(Data key, Data d);
    bool remove(Data key);
    void print();
    void print_back();
};
template <class Data>
   void List<Data>::add(Data d){
    Node *pv = new Node(d);
    if (pbeg == 0)pbeg = pend = pv;
    else{
        pv->prev= pend;
        pend->next= pv;
        pend = pv;}
}
   template <class Data>
Node * List<Data>::find(Data d){
    Node *pv = pbeg;
    while (pv){
        if (pv->d == d)break;
        pv = pv->next;
    }
    return pv;
}
template <class Data>
Node * List<Data>::insert(Data key, Data d){
    if (Node *pkey = find(key)){
        Node *pv = new Node(d);
        pv->next = pkey->next;
        pv->prev = pkey;
        pkey->next = pv;
        if( pkey != pend) (pv->next)->prev = pv;
        else pend = pv;
        return pv;
    }
    return 0;
}
template <class Data>
bool List <Data>::remove(Data key){
    if(Node *pkey = find(key)){
        if (pkey == pbeg){
            pbeg = pbeg->next; pbeg->prev= 0;}
        else if (pkey == pend){
            pend = pend->prev; pend->next = 0;}
        else{
            (pkey->prev)->next = pkey->next;
            (pkey->next)->prev = pkey->prev;}
        delete pkey; eturn true;}
    return false;
}
template <class Data>
void List <Data>::print(){
    Node *pv = pbeg;
    cout << endl << "list: ";
    while (pv){
        cout << pv->d << ' ';
        pv = pv->next;}
    cout << endl;
}
template <class Data>
void List <Data>::print_back(){
    Node *pv = pend;
    cout << endl << " list back: ";
    while (pv){
        cout << pv->d << ' ' ;
        pv = pv->prev;}
    cout << endl;
}
template <class Data>
List<Data>::~List(){
    if (pbeg !=0){
        Nod *pv = pbeg;
        while (pv){
            pv = pv->next; delete pbeg;
            pbeg = pv;}
    }
}
int main(){
    List L;
    for (int i = 1; i<6; i++) L.add(i);
    L.print();
    L.print_back();
    L.insert(2, 200);
    if (!L.remove(5)) cout << "not found";
    L.print();
    L.print_back();
}
помогите исправить ошибки и помогите сделать перегруженную операцию присваивания (“=”) и операции:
- «[]» − доступ к элементу в заданной позиции, например:
Type c;
int i;
list L;
c=L[i];
- «+» − объединить два списка;
- «!=» − проверка на неравенство

Добавлено через 1 час 1 минуту
люди помогите плиз!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2010, 21:07     Шаблоны.Исправить ошибки.
Посмотрите здесь:

C++ Исправить ошибки.
Шаблоны функций. Исправьте ошибки C++
Шаблоны функций. Есть ошибки C++
Исправить ошибки C++
C++ исправить ошибки
Шаблоны функций как исправить код? C++
Исправить ошибки C++
C++ Исправить ошибки

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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