Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.226 c
4-1142316961
_white_
2006-03-14 09:16
2006.06.04
Чтение из памяти другой программы


6-1133513353
Fishka
2005-12-02 11:49
2006.06.04
Прием почты - ошибка


15-1147237230
Ega23
2006-05-10 09:00
2006.06.04
С Днём рождения! 7 мая


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


5-1132749347
Tonich
2005-11-23 15:35
2006.06.04
Свойства





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский