program graf; uses crt; const maxpontszam=20; maxkimeno=10; type csucslista=array[1..maxpontszam,1..maxkimeno] of integer; mutato=^elem; elem=record pont:integer; kapcs:array[1..maxkimeno] of mutato; end; var stomb:array[1..maxpontszam] of mutato; csl:csucslista; n,g,max:integer; grafmut:mutato;{a grafra mutat} procedure beolvasas; VAR m,i,j:integer; begin {Az ellenorzeseket meg bele kell irni, ne felejtsd el :))) } clrscr; writeln('HANY PONTJA VAN A GRAFNAK?'); readln(n); writeln('Hany el indul ki maximalisan egy pontbol?'); readln(max); For i:=1 to n do begin writeln('Az ',i,'. csucsbol hany el indul ki'); readln(m); For j:= 1 to m do begin writeln('Az ',i,'. csucsbol a ',j,'. el hova megy?'); readln(csl[i,j]); end; while j<=max do begin csl[i,j]:=0; j:=j+1; end; end; writeln('Hanyas pont a generalo pont?'); readln(g); end; procedure atalakitas(psz:integer;kf:integer;cs:csucslista;gp:integer;var gr:mutato); var i,j:integer; sm:mutato; Begin for i:=1 to psz do begin new(stomb[i]); stomb[i]^.pont:=i; for j:=1 to kf do begin if cs[i,j]=0 then stomb[i]^.kapcs[j]:=nil else stomb[i]^.kapcs[j]:=stomb[cs[i,j]]; end; end; gr:=stomb[gp]; End; BEGIN beolvasas; atalakitas(n,max,csl,g,grafmut); END.