Всем привет, у меня стоит задание: Описать процедуру ввода, вывода списка, рекурсивную процедуру (функцию), что определяет, сколько раз входит данный элемент в однонаправленных список L. Ну так вот я составил процедуры ввода и вывода прошу помогите с рекурсивной процедурой. Спасибо!
Program Spisok;
| Код | uses crt; type Tinf=integer; List=^TList; TList=record data:TInf; next:List; end;
procedure AddElem(var spis1:List;znach1:TInf); var tmp:List; begin if spis1=nil then begin GetMem(spis1,sizeof(TList)); tmp:=spis1; end else begin tmp:=spis1; while tmp^.next<>nil do tmp:=tmp^.next; GetMem(tmp^.next,sizeof(TList)); tmp:=tmp^.next; end; tmp^.next:=nil; tmp^.data:=znach1; end;
procedure Print(spis1:List); begin if spis1=nil then begin writeln('Список пуст.'); exit; end; while spis1<>nil do begin Write(spis1^.data, ' '); spis1:=spis1^.next end; end;
begin Spis:=nil; repeat Writeln('1) Добавить элемент.'); Writeln('2) Вывод списка.'); ch:=readkey; case ch of '1':begin write('Введите значение добавляемого элемента: '); readln(znach); AddElem(Spis,znach); end; '2':begin clrscr; Print(Spis); readkey; end;
|
|