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

круговой список - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
ole4
0 / 0 / 0
Регистрация: 30.01.2011
Сообщений: 4
31.01.2011, 09:56     круговой список #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
#include <iostream.h>
#include <conio.h>
#include <fstream.h>
#include <stdio.h>
 struct Node
    {
     int d;
     Node *next;
     Node *prev;
    } ;
Node * first(int d);
void add(Node **pd,int d);
void osv(Node **pg);
void vivod(Node *pg);
    void main()
 {Node *pbeg, *pend;int i,str[15],str1[15]; int sum;
   ifstream primer("primer.txt",ios::in);
   cout<<primer;
   printf(str);
   printf(str1)
  for(int i=0;i<15;i++)
   { 
 
 pbeg = first(int d[0]);
 pend = pbeg;
 
  vivod(pbeg);
 osv(&pbeg);
 
 getch();
}
 
Node *first(int d)
  {
     Node *pv=new Node;
     pv->d=d;
     pv->next=NULL;
     pv->prev=NULL;
     return pv;
   }
void vivod(Node *pg)
 {  Node *pt=pg;
    ofstream otvet("otvet.txt",ios::out);
 otvet.close();
}
void osv(node **pg)
    {
     node *pv=*pg, *pr=0;
     cout<<"\n Spisok unichtogen";
     while(pv)
         {
          pr=pv; pv=pv->next;
          delete pr;
          *pg=0;
         }
    }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
grrrrr
 Аватар для grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
31.01.2011, 12:58     круговой список #2
ole4, Что значит "используя круговой список"?
Mayonez
 Аватар для Mayonez
379 / 271 / 20
Регистрация: 26.12.2009
Сообщений: 875
31.01.2011, 13:18     круговой список #3
grrrrr, после последнего элемента идет первый и так по кругу....
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
01.02.2011, 04:39     круговой список #4
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
#include<iostream>
#include<fstream>
using namespace std;
 
template<class T>
struct node{
    T data;
    node* next;
    node* prev;
    node(T a):data(a), next(0), prev(0){}
    void insert(T, node*);
    void show(node* p);
    void del(node* p);
};
 
template<class T>
void node<T>::insert(T a, node<T>* p){
    if(a>data&&next!=p){
        next->insert(a, p);
    }
    else if(a>data&&next==p){
        node<T>* temp=new node<T>(a);
        temp->prev=this;
        temp->next=next;
        next->prev=temp;
        next=temp;
    }
    else{
        node<T>* temp=new node<T>(a);
        temp->next=this;
        temp->prev=prev;
        prev->next=temp;
        prev=temp;
    }
}
 
template<class T>
void node<T>::show(node<T>* p){
    cout<<data<<"  ";
    if(next!=p) next->show(p);
    else cout<<"\n\n";
}
 
template<class T>
void node<T>::del(node<T>* p){
    if(next!=p){
        next->del(p);
        cout<<"Uzel "<<next->data<<" unichtojen\n";
        delete next;
        next=0;
    }
}
 
template<class T>
struct list{
    node<T>* head;
    list():head(0){}
    ~list();
    void insert(T);
    void show();
};
 
template<class T>
list<T>::~list(){
    if(head!=0){
        head->del(head);
        cout<<"Uzel "<<head->data<<" unichtojen\n";
        delete head;
        head=0;
    }
    cout<<"Spisok unichtojen\n";
}
 
template<class T>
void list<T>::insert(T a){
    if(head==0){
        head=new node<T>(a);
        head->next=head->prev=head;
    }
    else head->insert(a, head);
}
 
template<class T>
void list<T>::show(){
    if(head!=0) head->show(head);
    else cout<<"\nList is empty\n";
}
 
void vivod(int a){
    fstream fs("otvet.txt", ios::out);
    fs<<a;
    fs.close();
}
 
int main(){
    list<int> l;
    int a;
    fstream fs("primer.txt");
    if(!fs){cerr<<"File primer.txt not found"; return 1;}
    while(fs>>a) l.insert(a);
    fs.close();
    cout<<"Spisok: ";
    l.show();
    a=0;
    node<int>* temp=l.head;
    do{
        a+=temp->data;
        temp=temp->prev;
    }while(temp!=l.head);
    cout<<"Summa= "<<a<<"\n\n";
    vivod(a);
}
Yandex
Объявления
01.02.2011, 04:39     круговой список
Ответ Создать тему
Опции темы

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