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

двусвязный циклический список - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить количество ненулевых элементов в каждой нечетной строке матрицы http://www.cyberforum.ru/cpp-beginners/thread427371.html
Определить количество ненулевых элементов в каждой нечетной строке матрицы G (4,4). Вывести количество ненулевых элементов и номера соответствующих строк.
C++ Среди отрицательных четных элементов найти... Задано масив S(12) . Серед від’ємних парних елементів знайти другий елемент і замінити його максимальним серед додатніх елементів, які мають непарні індекси. Вивести вихідний та перетворений масиви, а також другий елемент серед від’ємних парних елементів та максимальний серед додатніх з непарними індексами. Задан массив S (12). Среди отрицательных четных элементов найти второй элемент и... http://www.cyberforum.ru/cpp-beginners/thread427358.html
Динамические массивы: C++
Найти максимальный элемент матрицы.
C++ в одномерном массив состоящем из n целых элементов вычислить:
1) сумму элементов массива с нечетными номерами. 2) сумму элементов массива, расположенных между первым и последним отриц-ми элементами.
C++ с++ кто может хелп http://www.cyberforum.ru/cpp-beginners/thread427348.html
пожалуйста коды на с++ желательно
C++ Зачем нужны библиоткки Длл и как их писать Всем доброго времени суток раскажите пожалуйста о библиотеках длл подробнее

Показать сообщение отдельно
champ32
0 / 0 / 0
Регистрация: 02.11.2010
Сообщений: 27
13.01.2012, 12:01     двусвязный циклический список
помогите исправить ошибки впрограмме не знаю че делать(компилятор dev-c++)
заранее спасибо
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
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <conio.h>
using namespace std;
 
 
template <class T> class list{
    class elem{             
    public:                     
        T *pd;
        elem *next,*prev;       
        int remove(){           
            if (next==this)     
                return 1;       
            next->prev=prev;    
            prev->next=next;    
            return 0;}          
        void before(elem *p){   
            next=p;             
            prev=p->prev;
            p->prev->next=this; 
            p->prev=this;       
            }                   
        elem(T *s) {pd=s; next=prev=this; }
        ~elem() {}              
        };
    elem *head;
public:
    void end(T *s){             
        if (head==NULL) head=new elem(s);
        else (new elem(s))->before(head);
        }                       
    void front(T *s){           
        end(s); head=head->prev;
        }
    void sort();
    operator int();             
    list() { head=NULL; }
    ~list();
 
    template <class T>   friend ostream & operator<<(ostream &O , list<T> &L);
    template <class T> friend istream & operator>>(istream &I,list<T> &L);
};
 
 
 
template <class T> ostream &operator<<(ostream &O ,list<T> &L)
{   
    T *p;
    int n=L;            
    list<T>::elem *p=L.head;
    O << n << endl;
    while(n--!=0){          
        O << *p->pd << endl;
        p=p->next;
        }
    return O; }
 
 
 
 
//---------------------------------------------
template <class T>  istream &operator>>(istream &I,list<T> &L){
        int n; I >> n;          
        T val;                  
        while(n--!=0){I >> val; L.end(val); }
        }
        
    
 
template <class T> list<T>::~list(){
    int k;
    do  {                   
        elem *q=head->prev; 
        k=q->remove();      
        delete q;           
        } while(k==0);  
    }
 
template <class T> list<T>::operator int(){
    elem *p;     
    if (head==NULL) return 0;
    list<T>::elem *p; int n;
    for (p=head->next,n=1; p!=head;n++,p=p->next);
    return n;
    }
 
 
 
template <class T> void list<T>::sort(){
if (head==NULL || head->next==head) return;
    elem *q,*out,*p;        
    q=head->prev;           
    q->remove();            
    q->next=q->prev=q;
    out=q;
    int k;
    do {                    
        q=head->prev;
        k=q->remove();
        p=out;               
        do  {               
        if (*q->pd < *p->pd) break;
        p=p->next;
        } while(p!=out);    
        q->before(p);       
        if (*q->pd < *out->pd) 
            out=q;          
    } while(k==0);
    head=out;               
    }
 
 
 
int main(){
int c[10]={4,7,3,4,5,2,8,6,7,5};
list<int> A;
for (int i=0; i<10; i++) A.end(&c[i]);
cout << A;
A.sort();
cout << A;
getch();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru