# Combinatorica Graph from Edge List

Can someone provide an example of a Combinatorica-based graph which uses ShowGraph and Graph and takes in an explicitly defined list of edges (not some auto-generated graph). I have not been able to find any documentation which describes the expected input format.

• You can find the input format for the edges and vertices for CombinatoricaGraph under More Information on the page Combinatorica/ref/Graph in the documentation center Commented May 6, 2012 at 22:26
• Just in case someone wants Heike's link on the web: reference.wolfram.com/mathematica/Combinatorica/ref/Graph.html Commented May 7, 2012 at 1:20

Two examples:

   Needs["Combinatorica"]
GraphicsRow[
{ShowGraph[
g1 = Graph[{{{1, 2}}, {{2, 3}}, {{3, 1}}}, {{{1, 1}}, {{2, 1}}, {{3, 3}}}],
VertexNumber -> True],
ShowGraph[
g2 = Graph[
{{{1, 2}, EdgeLabel -> "lbl1"}, {{2, 3}, EdgeColor -> Green},
{{3, 1}, EdgeLabel -> "(3,1)", EdgeDirection -> True, EdgeLabel -> True,
EdgeLabelPosition -> UpperLeft}},
{{{1, 1}, VertexLabel -> True, VertexLabelColor -> Blue,
VertexLabelPosition -> LowerRight},
{{2, 1}, VertexNumber -> True, VertexNumberColor -> Orange},
{{3, 3}}}]
]}]


to get

EDIT: Before loading Combinatorica you can transform the data using:

   toCombGrphData[gr_] :=  gr //
Sequence @@ {EdgeList[#] /. UndirectedEdge[x__] :> {List[x]},
List /@ (AbsoluteOptions[#, VertexCoordinates][[2]])} &


Update: For Version 9, we need to change the part specification above from [[2]] to [[1,2]] (thanks: @sam84).

Example:

  combgrpg = toCombGrphData[CompleteGraph[3]]


gives the edge list and vertex coordinates needed as input for Combinatorica Graph:

  (*  Sequence[{{{1, 2}}, {{1, 3}}, {{2, 3}}}, {{{0.866025, -0.5}}, {{-0.866025, -0.5}}, {{-2.44929*10^-16, 1.}}}] *)


Then,

  Needs["Combinatorica"]

ShowGraph[Graph[combgrph]]


gives

• I tried your example in Mathematica 9, but I obtain the following error: Part::partw: Part 2 of {VertexCoordinates->{{-0.866025,-0.5},{0.866025,-0.5},{1.83697*10^-16,1.}}} does not exist. >> Commented Apr 18, 2014 at 17:19
• @sam84, thank you. I will check if i can fix it.
– kglr
Commented Apr 18, 2014 at 17:47
• I fixed it. This function works: toCombGrphData[gr_] := gr // Sequence @@ {EdgeList[#] /. UndirectedEdge[x__] :> {List[x]}, List /@ (AbsoluteOptions[#, VertexCoordinates][[1, 2]])} & Commented Apr 19, 2014 at 9:32
• It is possible to extend the function toCombGrphData so to inclue also edge weights? Thanks Commented Apr 19, 2014 at 9:33
• @sam84, can't recall the Combinatorica syntax for using edge weights. If you have simple example handy, perhaps you can post a new question. (Thanks for the fix; I will update the post with the fix.)
– kglr
Commented Apr 19, 2014 at 14:46