powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите написать программу в С++
1 сообщений из 1, страница 1 из 1
Помогите написать программу в С++
    #38280005
timoor94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите исправить ошибки в задании:

Помогите написать программу в C++. Реализация динамической структуры "Линейный однонаправленный список целых чисел".
1) Реализовать абстрактный тип данных: линейный однонаправленный список с функциями, позволяющими:
а. Создать список символов, заканчивающихся точкой.
б. Распечатать список.
в. Поменять местами значения головного и хвостового элемента.
г. Добавить элементы в голову и в хвост списка.
д. Уничтожить список, освободив выделенную под него память.
2) Создать меню, позволяющее многократно выбирать функции


Вот ее код. Подскажите как исправить ошибки в функциях pom(), add_el1(), add_el2()

Код: 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.
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.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
#include<iostream.h>
#include<conio.h>
class TElem
{
friend TList;// dlya uproshenia koda
char a;// sod. infa
TElem *prev, *next;
public:
TElem();
};
//_____________________
TElem::TElem()
{
next=NULL;}
//-------------------------------
class TList
{
int kol;
TElem *first, *x;//tekush. elem
public:
TList();
void sozd();
void prn_lr();//chtenie spiska
void pom();//pomenyat mestami
void add_el1();// dobavl. elem.v golovu
void add_el2();// dobavl. elem. v hvost
void del_el();// udal. elem.
void kill_list();// udal. spiska
};
//______________________
TList::TList()
{
kol=0, first=x=NULL;}
//_________________

void TList::sozd()
{TElem *last;
last=NULL;
cout<<"Vvedite posledovatel'nost' simvolov.Okonchanie-tochka"<<endl;
do
{x=last; last=new TElem;
kol++;cin>>last->a;
last->next=NULL;
//last->prev=x;
if(first==NULL)
first=last;
else
x->next=last;
} while(last->a!='.');
cout<<"Spisok sozdan"<<endl;
}
//--------------------------------------------------------
void TList::prn_lr()
{cout<<"Chtenie spiska"<<endl;
if(kol==0)
{
cout<<"Spisok pust"<<endl;
return;
}
x=first;
while(x->next!=NULL)
{cout<<x->a<<ends;
x=x->next;
}
cout<<x->a;
}
//---------------------------------------------

void TList::del_el()
{cout<<"Udalenie elementov promejutka"<<endl;
float p,q;
cout<<"Vvedi nachalo promejutka dlya udaleniya:";
cin>>p;
cout<<"Vvedi konechniy element promejutka dlya udaleiya:";
cin>>q;
TElem *l,*r;
l=first;
while(l->next->next!=NULL)
{
if(l->next->a>=p && l->next->a<=q)
{
x=l->next;
r=x->next;
l->next=r;
delete x;kol--;
}
else
l=l->next;
}
}
//-------------------------------------
void TList::kill_list()
{
cout<<"Udalenie spiska"<<endl;
if(kol==0)
{
cout<<"Spiska net"<<endl;
return;
}
while(kol>=2)
{
x=first;
first=x->next;
first->prev=NULL;
delete x;
kol--;
}
delete first;
kol--;
first=x=NULL;
cout<<"spisok udalen"<<endl;
}
//___________________________

void TList::pom()
{
cout<<"Pomenyat mestami znacheniya golovnogo i hvostovogo el-ta"<<endl;
if (kol==0)
{
cout<<"Spisok ne sush"<<endl;
return;
}
TElem *last;
{
x=first;
while(x->next!=NULL)
{
cout<<x->a<<ends;
x=x->next;
}
cout<<x->a;
}
{
char *tmp;
{
first->a=*tmp;
*tmp=last->a;
first=last;
}
{
cout<<"Pom. mestami"<<endl;
}
}
}
//_________________________
void TList::add_el1()
 {
cout<<"Dobavit elementi v golovu spiska"<<endl;
if (kol==0)
{
cout<<"Spisok ne sush"<<endl;
return;
}
{
	TElem*temp=new TElem();//sozdanie novogo elementa
	char b;
	cout << "vvedite el-t" ;cin >>b;
	temp->next=first;//prisoedinenie k spisky
	temp->a=b;//modifikaciia spiska
	first=temp;
}
}
//------------------------------------------------------------------
void TList::add_el2()
 {
cout<<"Dobavit elementi v hvost spiska"<<endl;
if (kol==0)
{
cout<<"Spisok ne sush"<<endl;
return;
}
{
	TElem * c=first, *p=c;
	char a;
	cout << "vvedite el-t" ;cin >> a;
	while(NULL!=c){
	  p=c;
	  c=c->next;
	}
	if(NULL==p){
	  first=new TElem();
	  first->a=a;
	}else{
	  c=new TElem();
	  c->a=a;
	  p->next=c;
	}
}
}


//_________________________
void main()
{
clrscr();
TList lst;
int i;
do
{cout<<"Delai vybor:"<<endl
<<"0-vyhod"<<endl
<<"1-sozdanie spiska"<<endl
<<"2-vyvod"<<endl
<<"3-pomenyat mestami znachenia golovnogo i hvostovogo elementa "<<endl
<<"4-dobavit elementi v golovu spiska"<<endl
<<"5-dobavit elementi v hvost spiska"<<endl
<<"6-udalenie spiska"<<endl;
cin>>i;
switch(i)
{
case 1:lst.sozd(); break;
case 2:lst.prn_lr(); break;
case 3:lst.pom(); break;
case 4:lst.add_el1(); break;
case 5:lst.add_el2(); break;
case 6:lst.del_el(); break;
case 7:lst.kill_list(); break;
}
getch();
} while(i!=0);
}


Модератор: Не забывайте про теги форматирования исходников
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите написать программу в С++
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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