链式前向星

数据结构:

 

Type

  EdegNode=record

T,w,next:longint;

  End;

Var

 E:array[1..m]of longint;

Head:array[1..n]of longint;

 

读入边:

 

For i:=1 to n do head[i]:=-1;

For i:=1 to m do

Begin

  Readln(u,e[i].t,e[i].w);

  E[i].next:=head[u];

  Head[u]:=I;

End;

 

遍历代码:

 

For i:=1 to n do

Begin

  K:=head[i];

  While k<>-1 do

  Begin

//各项操作

K:=e[k].next;

  End;

End;

 

链式前向星的优点在于除了必要的边信息的储存空间外,只需要非常少的额外空间即可实现,代码和原理的比较简单,可以储存重边,可以应付点和边的数量都很大的情况,应该说除了不能直接用起点和终点确定是否有边外。链式前向星几乎是完美的。

要用链式前向星储存有向边得储存两次。

posted @ 2015-05-05 12:47  no regrets  阅读(378)  评论(0编辑  收藏  举报