Программа должна переставить элементы списка по следующему звкону: если текущий элемент больше некоторого числа Р то поместитьследующий заним элемент в конец цепочки; если текущий элемент меньше или равен Р перенести его в начало цепочки (первый оставить безизменения)
Вот код но это не вся программа почемуто у меня список не хочет присваиваться и выводится на экран...
Program Spisok;
Uses CRT;
Type
TDat=integer;
TLink=^Element;
Element=Record
Data:TDat;
Link:TLink;
End;
Var
List1,Elem,FindElem:TLink;
i,n,p:TDat;
{----------------}
Procedure InPutList(Var List:TLink);
Var
ElNew:TLink;
Val:TDat;
i,n:Integer;
Begin
ClrScr;
WriteLn('vvedite kol-vo elementov spiska ');
ReadLn(n);
List:=NIL;
For I:=1 To n Do
Begin
WriteLn('vvedite ',i,' element');
Read(val);
New(ElNew);
ElNew^.Data:=Val;
ElNew^.Link:=List;
List:=ElNew;
End;
End;
{----------------}
Procedure OutPutList(Var List:TLink);
Var
i:TDat;
Begin
WriteLn('element spiska ');
While List <> NIL Do
Begin
Write(List^.Data,' ');
List:=List^.Link;
End;
WriteLn;
End;
{----------------}
{----------------}
Begin
InPutList(List1);
List1:=List1;
OutPutList(List1);
OutPutList(List1);
Elem:=List1;
Write('wedite P=');
Readln(P);
FindElem:=NIL;
While List1 <> NIL Do
Begin
If Elem^.Data>P
Then
Begin
FindElem:=Elem;
New(FindElem);
{Elem^.Link:=NIL;}
Elem^.Link:=FindElem;
FindElem^.Link:=NIL;
End
Else Elem:=Elem^.Link;
End;
OutPutList(Elem);
End.
Заранее СПАСИБО...