# Get the neighboring vertices and incident edges from a vertex in a graph

I need to get the neighboring vertices and incident edges from a vertex in a graph. I assume NeighborhoodVertices can be used for the former. Anything better?

Or given something like {1 \[UndirectedEdge] 2, 2 \[UndirectedEdge] 3, 3 \[UndirectedEdge] 1}, how to directly get these information? Can I do list matching to some pattern?

-

A random graph

 g = RandomGraph[{15, 35}, VertexLabels -> "Name", PlotRangePadding -> .2]


Edges for the vertex 4:

 EdgeList[g, 4 \[UndirectedEdge] _]


Result:

Now vertexes around vertex4:

 VertexList[NeighborhoodGraph[g, 4]]


Result:

 {4, 14, 11, 6, 7, 9, 13, 15}


Illustration:

  HighlightGraph[g, NeighborhoodGraph[g, 4]]


There are many other ways. You could also use AdjacencyMatrix to get all that info.

-
yes, NeighborhoodVertices[g, 4, 1] can also get the same list with shorter typing. :) –  Qiang Li Feb 17 '12 at 22:41
@QiangLi Only if you use GraphUtilities package - which I do not. ;-) I use built in Graph functionality. –  Vitaliy Kaurov Feb 17 '12 at 22:47
True. :) +1 Thank you. –  Qiang Li Feb 17 '12 at 22:55