/* * DCEL.java Dcel (Doubly Connected Edge List). Operations with HashMap<Integer, Node or Article> * * Copyright (c) 2005 Andrew Krizhanovsky /aka at mail.iias.spb.su/ * Distributed under GNU Public License. */ package wikipedia.kleinberg; import wikipedia.util.*; import java.util.*; public class DCEL { public DCEL() { } //hm.values().size(); - number of vertices /** * Count half number of all arcs in the structure */ public static <T> int CountLinksIn(Map<Integer, T> hm) { Iterator<T> it = hm.values().iterator(); Integer counter; counter = 0; while (it.hasNext()) { /*T a = it.next(); if (!(a instanceof Node)) return 0; */ Node node = (Node)it.next(); if(null != node.links_in) // count only links_in (i.e. skip links_out) counter += node.links_in.length; // because every link has the begin in the structure } return counter; } }