Pomocy ze wskaźnikami

0

Jak zrobić żeby to co się dzieje w tablicy D działo się na listach ze wskaźnikami? czyli zeby np.

o:=G[j].awezel;
p:=G[j].bwezel;

i przykładowo o=1 a p=2
i tak zrobić (jeśli się da) żeby
If D[o]=0 then D[o]:=o;
If D[p]=0 then D[p]:=D[o]
w tym kroku dane w tablicy nie zmieniały się tylko wskaźnik 1 elementu tablicyD wskazywał na 1 i wskaźnik 2 elementu wskazywał na 1 .

Program algorytmkruskala;

USES CRT;

type
Krawedz = Record
awezel : Integer;
bwezel : Integer;
waga : Integer;
end;

Graf = Array[1..200] Of Krawedz;

Procedure Sortowanie(Var G : Graf; ilekr : Integer); {sortowanie krawędzi według wag}
Var
a, b : Integer;
tmp : Krawedz;
Begin
for a:=1 to ilekr-1 do
for b:=1 to ilekr-a do
If G[b].waga>G[b+1].waga then
Begin
tmp:=G[b];
G[b]:=G[b+1];
G[b+1]:=tmp;
end;
end;

Procedure Kruskal(ilewe : Integer; Var G : Graf; var F : Graf; var kralg : Integer); {algorytm Kruskala}
Var
D : Array[1..200] Of Integer;
i, j, k, o, p : Integer;
Begin
k:=1;
kralg:=0;
j:=1;

for i:=1 to ilewe do 
D[i]:=0;

While k<ilewe do
Begin		
	o:=G[j].awezel;			 
	p:=G[j].bwezel;			 
	j:=j+1;	
	If (D[o]=0) or (D[p]=0) or (D[o]<>D[p])  then	 
	Begin	 					
		kralg:=kralg+1;				
		F[kralg]:=G[j-1];			 
		

		If D[o]=0 then D[o]:=o;   		
		If D[p]=0 then D[p]:=D[o]		 
		Else					
		Begin
		
			For i:=1 to ilewe do		
			If D[i]=D[p] then D[i]:=D[o];	 
		end;					 
	end;						
k:=k+1;						
end;

end;

0

Wie ktoś jak użyć w tym wskaźniki? moze w inny sposób?

0

Wie ktoś jak użyć w tym wskaźniki? moze w inny sposób?

1 użytkowników online, w tym zalogowanych: 0, gości: 1