|
|
|
Добавление элемента в "хвост" в линейном однонаправленном списке
|
|||
|---|---|---|---|
|
#18+
НЕ получается добавить элементы в "хвост" списка и в "голову" выдает ошибки Буду очень признательна за помощь!!!!!!!!! # include <iostream.h> # include <conio.h> # include <iomanip.h> # include <stdio.h> # include <string.h> # include <stdlib.h> # include <fstream.h> class TElem { friend class TList; char a; TElem *next; public: TElem(); }; TElem::TElem() {next=NULL;} class TList { TElem *first,*cur;//cur-tekyschii element int count;//kolichestvo elementov v spiske public: TList();//konstruktor void sozd();//sozdanie spiska simvolov,zakanchivauschixsia tochkoi void prn();//raspechativanie spiska void addel_golova(char c);//dobavlenie elementa v golovy void addel_xvost();//dobavlenie elementa v xvost void clearlist(); //ynichtozenie spiska }; TList::TList() {first=cur=NULL; count=0;} //----------------------------------------------- void TList::sozd() { TElem*t; char b; t=first;(*t).next=NULL; cout<<"vvedite posledovatelnost simvolov:okonchanie -tochka"; cin>>b; while (b!='.') { (*t).next=new (TElem); t=(*t).next; (*t).a=b;(*t).next=NULL; cin>>b; } } //------------------------------------------------------------- void TList::prn() { TElem*t; t=first;t=(*t).next; cout<<"spisok: "; while (t!=NULL) { cout<<(*t).a<<" "; t=(*t).next; } } //---------------------------------------------------------------- void TList::addel_golova(char c) { TElem*temp=new TElem;//sozdanie novogo elementa count++; temp->next=first;//prisoedinenie k spisky temp->a=c;//modifikaciia spiska first=temp; } //------------------------------------------------------------------ void TList::addel_xvost()//А ВОТ ЗДЕСЬ САМ ПО СЕБЕ ПО_МОЕМУ НЕПРАВИЛЬНЫЙ { if (cur->next==NULL) { TElem*temp;//sozdanie novogo elementa temp=cur->next; TElem*d=new TElem; count++; cout<<"vvedite simvol";cin>>d->a; temp->next=cur;//prisoedinenie k spisky temp->a=d; cur=temp;//modifikaciia spiska } } //---------------------------------------------------------------- void TList::clearlist() { TElem *q,*q1;//rabochie ykazateli q=first; q1=(*q).next;//ykazatel q1 operezaet ykazatel q while (q1!= NULL) {q=q1;q1=(*q1).next;delete q;} } //------------------------------------------------------------------- void main() { TList A; char e; int k;//Kontrol vibora pynkta menu do { cout <<"vvedite pynkt menu: " <<"1-sozdanie spiska simvolov,zakanchivauschixsia tochkoi"<<endl <<"2-raspechativanie spiska"<<endl <<"3-dobavlenie elementa v golovy"<<endl <<"4-dobavlenie elementa v xvost"<<endl <<"5-ynichtozenie spiska"<<endl; cin>>k; switch (k) { case 1:A.sozd();break; case 2:A.prn();break; case 3:A.addel_golova(e);break;//что -то я неправильно указываю в скобках-не понимаю какая переменная там должна бытьcase 4:A.addel_xvost();break; case 5:A.clearlist();break; } } while (k); } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2005, 10:04 |
|
||
|
Добавление элемента в "хвост" в линейном однонаправленном списке
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2005, 10:30 |
|
||
|
Добавление элемента в "хвост" в линейном однонаправленном списке
|
|||
|---|---|---|---|
|
#18+
Теперь у меня вот так -только не знаю -как в case 3:A.addel_golova(); должно быть? # include <iostream.h> # include <conio.h> # include <iomanip.h> # include <stdio.h> # include <string.h> # include <stdlib.h> # include <fstream.h> class TElem { friend class TList; char a; TElem *next; public: TElem(); }; TElem::TElem() {next=NULL;} class TList { TElem *first,*cur;//cur-tekyschii element int count;//kolichestvo elementov v spiske public: TList();//konstruktor void sozd();//sozdanie spiska simvolov,zakanchivauschixsia tochkoi void prn();//raspechativanie spiska void addel_golova(char c);//dobavlenie elementa v golovy void addel_xvost();//dobavlenie elementa v xvost void clearlist(); //ynichtozenie spiska }; TList::TList() {first=cur=NULL; count=0;} //----------------------------------------------- void TList::sozd() { TElem*t; char b; t=first;(*t).next=NULL; cout<<"vvedite posledovatelnost simvolov:okonchanie -tochka"; cin>>b; while (b!='.') { (*t).next=new (TElem); t=(*t).next; (*t).a=b;(*t).next=NULL; cin>>b; } } //------------------------------------------------------------- void TList::prn() { TElem*t; t=first;t=(*t).next; cout<<"spisok: "; while (t!=NULL) { cout<<(*t).a<<" "; t=(*t).next; } } //---------------------------------------------------------------- void TList::addel_golova(char c) { TElem*temp=new TElem();//sozdanie novogo elementa char a; cout << "vvedite el-t" ;cin >> a; count++; temp->next=first;//prisoedinenie k spisky temp->a=c;//modifikaciia spiska first=temp; } //------------------------------------------------------------------ void TList::addel_xvost() { TElem * c=first, *p=c; char a; cout << "vvedite el-t" ;cin >> a; while(NULL!=c){ p=c; c=c->next; } count++; if(NULL==p){ first=new TElem(); first->a=a; }else{ c=new TElem(); c->a=a; p->next=c; } } //---------------------------------------------------------------- void TList::clearlist() { TElem *q,*q1;//rabochie ykazateli q=first; q1=(*q).next;//ykazatel q1 operezaet ykazatel q while (q1!= NULL) {q=q1;q1=(*q1).next;delete q;} } //------------------------------------------------------------------- void main() { TList A; int k;//Kontrol vibora pynkta menu do { cout <<"vvedite pynkt menu: " <<"1-sozdanie spiska simvolov,zakanchivauschixsia tochkoi"<<endl <<"2-raspechativanie spiska"<<endl <<"3-dobavlenie elementa v golovy"<<endl <<"4-dobavlenie elementa v xvost"<<endl <<"5-ynichtozenie spiska"<<endl; cin>>k; switch (k) { case 1:A.sozd();break; case 2:A.prn();break; case 3:A.addel_golova();break;//Тут она мне говорит что слишком много параметров Charcase 4:A.addel_xvost();break; case 5:A.clearlist();break; } } while (k); } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2005, 10:42 |
|
||
|
Добавление элемента в "хвост" в линейном однонаправленном списке
|
|||
|---|---|---|---|
|
#18+
Теперь не получается в голову добавить-она работает-но выдает иероглиф вместо буквы??? class TElem { friend class TList; char a; TElem *next; public: TElem(); }; TElem::TElem() {next=NULL;} //---------------------------------------------------------------------- void TList::addel_golova() { TElem*temp=new TElem();//sozdanie novogo elementa char c; cout << "vvedite el-t" ;cin >> c; count++; temp->next=first;//prisoedinenie k spisky temp->a=c;//modifikaciia spiska first=temp; } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2005, 12:40 |
|
||
|
Добавление элемента в "хвост" в линейном однонаправленном списке
|
|||
|---|---|---|---|
|
#18+
Разве никто не знает в чем ошибка в "голове"????Помогите -а то сег сдавать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2005, 13:35 |
|
||
|
Добавление элемента в "хвост" в линейном однонаправленном списке
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. MarusiaРазве никто не знает в чем ошибка в "голове"???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2005, 13:59 |
|
||
|
Добавление элемента в "хвост" в линейном однонаправленном списке
|
|||
|---|---|---|---|
|
#18+
да-да! немножко стыдно-но этот иероглиф все равно передвигается по списку-где-то еще засада ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2005, 14:10 |
|
||
|
Добавление элемента в "хвост" в линейном однонаправленном списке
|
|||
|---|---|---|---|
|
#18+
# include <iostream.h> # include <conio.h> # include <iomanip.h> # include <stdio.h> # include <string.h> # include <stdlib.h> # include <fstream.h> class TElem { friend class TList; char a; TElem *next; public: TElem(); }; TElem::TElem() {next=NULL;} class TList { TElem *first,*cur;//cur-tekyschii element int count;//kolichestvo elementov v spiske public: TList();//konstruktor ~TList(); void sozd();//sozdanie spiska simvolov,zakanchivauschixsia tochkoi void prn();//raspechativanie spiska void addel_golova();//dobavlenie elementa v golovy void addel_xvost();//dobavlenie elementa v xvost void clearlist(); //ynichtozenie spiska }; TList::TList() {first=new (TElem);cur=NULL; count=0;} TList::~TList() {delete first,cur;} //----------------------------------------------- void TList::sozd() { TElem*t; char b; t=first; cout<<"vvedite posledovatelnost simvolov:okonchanie -tochka "; cin>>b; while (b!='.') { (*t).next=new (TElem); t=(*t).next; (*t).a=b;(*t).next=NULL; cin>>b; } } //------------------------------------------------------------- void TList::prn() { TElem*t; t=first; cout<<"spisok: "; while (t!=NULL) { cout<<(*t).a<<" "; t=(*t).next; } } //---------------------------------------------------------------- void TList::addel_golova() { TElem*temp=new TElem();//sozdanie novogo elementa char b; cout << "vvedite el-t" ;cin >> b; count++; temp->next=first;//prisoedinenie k spisky temp->a=b;//modifikaciia spiska first=temp; } //------------------------------------------------------------------ void TList::addel_xvost() { TElem * c=first, *p=c; char a; cout << "vvedite el-t" ;cin >> a; while(NULL!=c){ p=c; c=c->next; } count++; if(NULL==p){ first=new TElem(); first->a=a; }else{ c=new TElem(); c->a=a; p->next=c; } } //---------------------------------------------------------------- void TList::clearlist() { TElem *q,*q1;//rabochie ykazateli q=first; q1=(*q).next;//ykazatel q1 operezaet ykazatel q while (q1!= NULL) {q=q1;q1=(*q1).next;delete q;} } //------------------------------------------------------------------- void main() { TList A; int k;//Kontrol vibora pynkta menu do { cout <<"vvedite pynkt menu: " <<"1-sozdanie spiska simvolov,zakanchivauschixsia tochkoi"<<endl <<"2-raspechativanie spiska"<<endl <<"3-dobavlenie elementa v golovy"<<endl <<"4-dobavlenie elementa v xvost"<<endl <<"5-ynichtozenie spiska"<<endl; cin>>k; switch (k) { case 1:A.sozd();break; case 2:A.prn();break; case 3:A.addel_golova();break; case 4:A.addel_xvost();break; case 5:A.clearlist();break; } } while (k); } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2005, 14:26 |
|
||
|
Добавление элемента в "хвост" в линейном однонаправленном списке
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2005, 14:27 |
|
||
|
Добавление элемента в "хвост" в линейном однонаправленном списке
|
|||
|---|---|---|---|
|
#18+
К сожалению результат тот же самый-перед первым элементом печатается буква Ё!!!!!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2005, 14:33 |
|
||
|
Добавление элемента в "хвост" в линейном однонаправленном списке
|
|||
|---|---|---|---|
|
#18+
См. файл во вложении ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2005, 14:37 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33079391&tid=2033264]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
225ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 500ms |

| 0 / 0 |
