Главная страница
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.063 c
6-1138784691
piople
2006-02-01 12:04
2006.06.04
ISAPI + UpLoad


15-1147155617
grisme
2006-05-09 10:20
2006.06.04
Серверы для отправки СМС есть?


2-1147930734
ttt_111
2006-05-18 09:38
2006.06.04
Работа с компонентом DBGrid?


2-1147984411
SmallCod
2006-05-19 00:33
2006.06.04
Рисование на ScrollBox`e


2-1147831588
Wood
2006-05-17 06:06
2006.06.04
Обработка события при аварийном завершении приложения