图算法基础知识.pptxVIP

  • 3
  • 0
  • 约1.09千字
  • 约 29页
  • 2020-03-07 发布于上海
  • 举报
图算法(一);图;图的扩展;图;图的表示;图: 邻接矩阵;图: 邻接矩阵;图: 邻接矩阵;图: 邻接矩阵;图: 邻接矩阵;图: 邻接矩阵; 输入和查看一遍邻接矩阵需要多少时间? 答: O(|V|2) 存储一个邻接矩阵需要多少存储空间? 答: O(|V|2) 稀疏图(|E|?|V|或|E||V|),邻接矩阵是稀疏矩阵,浪费空间,因此采用邻接表更有效。;图:邻接表;1;邻接表的实现 Type pointer=↑adjnode adjnode=record adjvex:integer; {该点在图中的位置} next:pointer; {指向下一个顶点的指针} infor: …; {与边有关的信息,如权值w} Adjlist=array[1..maxlength] of pointer;; 无环有向图的拓扑排序 Directed acyclic graphs( DAG) topological sort;何谓“拓扑排序”?;例如:对于下列有向图;B;如何进行拓扑排序?;a;拓扑排序算法;;//入度为0的顶点加入队列q For i:=1 to n do if indeg[i]=0 then enqueue(i,q); //入队 //队列q的队首顶点出队,与该顶点邻接的顶点的出度减1 While not empty(q) do begin i:=dequeue(q); inc(count); //计数器加1 ord[i]:=count; //ord数组存储顶点i的排序后的序号 p:=wadj[i]; while pnil do // 该循环将顶点i的所有邻接点入度减1 begin dec(indeg[p^.v]); if indeg[p^.v]=0 then enqueue (p^.v,q); p:=p^.next; end End ;//入度为0的顶点数小于n时,存在环; 否则图不存在环,且可进行拓扑排序,ord数组存储的就是排序后的序号 If countn then begin writeln(‘graph is cyclic’); topsort:=false; end; End;;拓扑排序应用;;;

文档评论(0)

1亿VIP精品文档

相关文档