Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.04;
Скачать: CL | DM;

Вниз

Линейные односвязные списки   Найти похожие ветки 

 
LaDaN   (2006-05-15 15:46) [0]

Помогите пожалуйста!!!! Аттестационная неделя, нужно по САОД написать программу на эту тему, я написал но не могу зделать последнее действи, т.е. удалить элемент у которого ОДИНАКОВЫЕ СОСЕДИ.   Помогите! Горю!
 Вото код, осталась толька эта процедура!

program primer;
uses crt;
type
point=^zap;
zap=record
inf:integer;
next:point
end;
var
first,p,q,r:point;
k,t:integer;
procedure spisok;
begin
writeln ("Viberite deystviya");
writeln ("0:vichod");
writeln ("1:vstavka 1-go elementa");
writeln ("2:vstavka v konec");
writeln ("3:vstavka s opr. mesta");
writeln ("4:pechat");
writeln ("5:udalit 1-iy");
writeln ("6:udalit posledniy");
writeln ("7:udalit s odinakovymi krainimi");
readln(k);
end;
procedure vstavka_v_nachalo;
begin
clrscr;
new(p);
writeln ("Vvedite dannie");
readln (p^.inf);
if first=nil then
begin
first:=p;
p^.next:=nil;
end
else begin
p^.next:=first;
first:=p;
end;
end;

procedure del_sosedn;
begin
 ВОТ ЗДЕСЬ НУЖНО ПОДУМАТЬ!
end;

procedure vstavka_v_konec;
begin
new(p);
writeln ("Vvedite dannie");
readln (p^.inf);
if first=nil then
first:=p
else begin
q:=first;
while q^.next<>nil do
q:=q^.next;
q^.next:=p;
p^.next:=nil;
end;
end;
procedure vstavka_opr_mesto;
begin
writeln ("Vvedite element posle kotorogo nado vstavit");
readln (t);
new(p);
writeln ("Vvedite dannie");
readln (p^.inf);
q:=first;
k:=1;
while k<t do
begin
k:=k+1;
q:=q^.next;
q^.next:=p;
p^.next:=r;
end;
end;
procedure pechat;
begin
writeln ("pechat spiska");
p:=first;
writeln ("*******************************");
if p=nil then
writeln (p^.inf)
else
while p<>nil do
begin
writeln (p^.inf);
p:=p^.next;
end;
writeln ("*******************************");
end;
procedure udalit_perviy;
begin

p:=first;
first:=first^.next;
dispose(p);

end;
procedure udalit_posledniy;
begin
q:=first;
r:=first;
while q^.next<>nil do
begin
r:=q;
q:=q^.next;

dispose (p);
r^.next:=nil;
end;
end;
begin

first:=nil;
repeat
spisok;
if k=1 then vstavka_v_nachalo;
if k=2 then vstavka_v_konec;
if k=3 then vstavka_opr_mesto;
if k=4 then pechat;
if k=5 then udalit_perviy;
if k=6 then udalit_posledniy;
if k=7 then del_sosedn;
until k=0;

end.


 
MBo ©   (2006-05-15 15:52) [1]

что это означает?
Например, в списке
Head-1-2-3-5-3-7...
нужно найти и удалить 5?

Да и реализованные процедуры какие-то сомнительные...



Страницы: 1 вся ветка

Текущий архив: 2006.06.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.045 c
2-1147890817
Тимофейка
2006-05-17 22:33
2006.06.04
динамическое создание кнопки


2-1147762028
ANB
2006-05-16 10:47
2006.06.04
Как отправить письмо с вложением без файла ?


3-1144924752
Бульбаш
2006-04-13 14:39
2006.06.04
Как передать фокус в нужную колонку грида


2-1147693593
LaDaN
2006-05-15 15:46
2006.06.04
Линейные односвязные списки


4-1142026212
TheEd
2006-03-11 00:30
2006.06.04
ShellExecute(Handle, open ,PCHAR(EMAIL),... - EMAIL c пробелами