A simple solution requiring only TikZ
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}[scale=2,vertex/.style={draw,circle}, arc/.style={draw,thick,->}]
\foreach [count=\i] \coord in {(0.809,0.588),(0.309,0.951),(-0.309,0.951),(-0.809,0.588),(-1.,0.),(-0.809,-0.588),(-0.309,-0.951),(0.309,-0.951),(0.809,-0.588),(1.,0.)}{
\node[vertex] (p\i) at \coord {\i};
}
\foreach [count=\r] \row in {{0,1,0,0,1,0,1,0,0,1},{1,0,1,0,0,1,0,1,0,0},{0,1,0,1,0,0,1,0,1,0},{0,0,1,0,1,0,0,1,0,1},{1,0,0,1,0,1,0,0,1,0},{0,1,0,0,1,0,1,0,0,1},{1,0,1,0,0,1,0,1,0,0},{0,1,0,1,0,0,1,0,1,0},{0,0,1,0,1,0,0,1,0,1},{1,0,0,1,0,1,0,0,1,0}}{
\foreach [count=\c] \cell in \row{
\ifnum\cell=1%
\draw[arc] (p\r) edge (p\c);
\fi
}
}
\end{tikzpicture}
\end{document}
This can obviously be wrapped into a macro accepting the adjacency matrix as argument.
The same idea could be used to generate the edges in a graph description parseable by the PGF3 graph library (requires LuaTeX).
Here's a "macroed" version handling the weighted case with customisable styles:
\documentclass[tikz]{standalone}
\newcommand{\graphfromadj}[3][arc/.try]{
\foreach [count=\r] \row in {#3}{
\foreach [count=\c] \cell in \row{
\ifnum\cell=1%
\draw[arc/.try=\cell, #1] (#2\r) edge (#2\c);
\fi
}
}
}
\newcommand{\weigthgraphfromadj}[3][draw,->]{
\foreach [count=\r] \row in {#3}{
\foreach [count=\c] \cell in \row{
\if0\cell%
\else
\draw[arc/.try=\cell, #1] (#2\r) edge node[arc label/.try=\cell]{\cell} (#2\c);
\fi
}
}
}
\begin{document}
\begin{tikzpicture}[scale=5,
vertex/.style={draw,circle},
arc/.style={draw=blue!#10,thick,->},
arc label/.style={fill=white, font=\tiny, inner sep=1pt}
]
\foreach [count=\i] \coord in {(0.809,0.588),(0.309,0.951),(-0.309,0.951),(-0.809,0.588),(-1.,0.),(-0.809,-0.588),(-0.309,-0.951),(0.309,-0.951),(0.809,-0.588),(1.,0.)}{
\node[vertex] (p\i) at \coord {\i};
}
\weigthgraphfromadj[bend left=10]{p}{{0,5,0,0,1,0,5,0,0,5},{2,0,1,0,0,5,0,2,0,0},{0,5,0,2,0,0,2,0,5,0},{0,0,7,0,5,0,0,2,0,5},{7,0,0,7,0,5,0,0,1,0},{0,5,0,0,2,0,5,0,0,1},{2,0,5,0,0,1,0,5,0,0},{0,7,0,5,0,0,2,0,1,0},{0,0,5,0,7,0,0,5,0,1},{5,0,0,5,0,1,0,0,1,0}}
\end{tikzpicture}
\end{document}

To handle self-loops a simple if could be used, and proper styling could adjust the settings (even per-node):
\newcommand{\graphfromadj}[3][]{
\foreach [count=\r] \row in {#3}{
\foreach [count=\c] \cell in \row{
\ifnum\cell>0%
\ifnum\c=\r%
\draw[arc/.try=\cell] (#2\r) edge[loop arc/.try=\r] (#2\c);
\else
\draw[arc/.try=\cell, #1] (#2\r) edge (#2\c);
\fi
\fi
}
}
}
Detecting bi-directional edges and drawing them differently is more difficult with this approach.
Importing from an external file
Here's a possible approach using catchfile which assumes the data is in the file demo.dat
\documentclass[tikz]{standalone}
\usepackage{catchfile}
\newcommand{\graphfromadj}[3][]{
\foreach [count=\r] \row in #3{
\foreach [count=\c] \cell in \row{
\ifnum\cell>0%
\ifnum\c=\r%
\draw[arc/.try=\cell] (#2\r) edge[loop arc/.try=\r] (#2\c);
\else
\draw[arc/.try=\cell, #1] (#2\r) edge (#2\c);
\fi
\fi
}
}
}
\CatchFileDef{\mymat}{demo.dat}{\endlinechar=-1 }
\begin{document}
\begin{tikzpicture}[
scale=5,
vertex/.style={draw,circle},
arc/.style={draw=blue,thick,->},
arc label/.style={fill=white, font=\tiny, inner sep=1pt},
loop arc/.style={in=20,out=70,loop,min distance=.8mm}
]
\foreach [count=\i] \coord in {(0.809,0.588),(0.309,0.951),(-0.309,0.951),(-0.809,0.588),(-1.,0.),(-0.809,-0.588),(-0.309,-0.951),(0.309,-0.951),(0.809,-0.588),(1.,0.)}{
\node[vertex] (p\i) at \coord {\i};
}
\graphfromadj[bend left=10]{p}{\mymat}
\end{tikzpicture}
\end{document}
\inputit; for example, making your Mathematica output function write\graphfromadj{p}{DATA}in the file would make the use of catchfile unnecessary. – Bordaigorl Sep 26 '14 at 10:32