powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Добавление элемента в "хвост" в линейном однонаправленном списке
12 сообщений из 12, страница 1 из 1
Добавление элемента в "хвост" в линейном однонаправленном списке
    #33079391
Marusia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
НЕ получается добавить элементы в "хвост" списка и в "голову" выдает ошибки
Буду очень признательна за помощь!!!!!!!!!
# 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);
}
...
Рейтинг: 0 / 0
Добавление элемента в "хвост" в линейном однонаправленном списке
    #33079430
Фотография XM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
void TList::addel_golova()
{
        TElem*temp=new TElem();//sozdanie novogo elementa
        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;
        }
}

...
Рейтинг: 0 / 0
Добавление элемента в "хвост" в линейном однонаправленном списке
    #33079453
Marusia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Теперь у меня вот так -только не знаю -как в 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);
}
...
Рейтинг: 0 / 0
Добавление элемента в "хвост" в линейном однонаправленном списке
    #33079818
Marusia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Теперь не получается в голову добавить-она работает-но выдает иероглиф вместо буквы???
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;
}
...
Рейтинг: 0 / 0
Добавление элемента в "хвост" в линейном однонаправленном списке
    #33079986
Marusia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разве никто не знает в чем ошибка в "голове"????Помогите -а то сег сдавать
...
Рейтинг: 0 / 0
Добавление элемента в "хвост" в линейном однонаправленном списке
    #33080049
Фотография XM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
void TList::prn()
{
TElem*t;
t=first; // !!! здесь не надо t=(*t).next;
cout<<"spisok: ";
while (t!=NULL)
{
cout<<(*t).a<<" ";
t=(*t).next;
}

MarusiaРазве никто не знает в чем ошибка в "голове"????
...
Рейтинг: 0 / 0
Добавление элемента в "хвост" в линейном однонаправленном списке
    #33080096
Marusia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да-да! немножко стыдно-но этот иероглиф все равно передвигается по списку-где-то еще засада
...
Рейтинг: 0 / 0
Добавление элемента в "хвост" в линейном однонаправленном списке
    #33080163
Marusia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
# 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);
}
...
Рейтинг: 0 / 0
Добавление элемента в "хвост" в линейном однонаправленном списке
    #33080165
Фотография XM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
void TList::sozd()
{
  TElem *t, *p;
  char b;
  t=first;
  cout<<"vvedite posledovatelnost simvolov:okonchanie -tochka";
  cin>>b;
  while (b!='.')
  {
   p=new TElem();
   p->a=b;
   if(NULL==t)  first=p;
    else t->next=p;
   t=p;
   cin>>b;
  }
}

...
Рейтинг: 0 / 0
Добавление элемента в "хвост" в линейном однонаправленном списке
    #33080187
Marusia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К сожалению результат тот же самый-перед первым элементом печатается буква Ё!!!!!!!!!
...
Рейтинг: 0 / 0
Добавление элемента в "хвост" в линейном однонаправленном списке
    #33080196
Фотография XM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
См. файл во вложении
...
Рейтинг: 0 / 0
Добавление элемента в "хвост" в линейном однонаправленном списке
    #33080221
Marusia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
СПАСИБО!!!!!!Буду разбираться
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Добавление элемента в "хвост" в линейном однонаправленном списке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]