diff --git a/source/graph/basic/udg/java/ListUDG.java b/source/graph/basic/udg/java/ListUDG.java index 2ece9f3..091bdcc 100644 --- a/source/graph/basic/udg/java/ListUDG.java +++ b/source/graph/basic/udg/java/ListUDG.java @@ -129,12 +129,32 @@ public ListUDG(char[] vexs, char[][] edges) { * 将node节点链接到list的最后 */ private void linkLast(ENode list, ENode node) { + + // 判断list中是否有node + if(hasNode(list, node)) + return; + + ENode p = list; while(p.nextEdge!=null) p = p.nextEdge; p.nextEdge = node; } + + // 单链表的查询功能 + private boolean hasNode(ENode list, ENode node) { + if(list == null) { + return false; + } + + ENode n = list; + if(n.index == node.index){ + return true; + }else{ + return hasNode(n.next, node); + } + } /* * 返回ch位置