Skip to content

Compiles a visual text representation of a graph into a vertex list and adjacency matrix.

License

Notifications You must be signed in to change notification settings

mgraczyk/GraphCompiler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Graph Compiler

Convert ASCII representations of graphs into usable data structures in Python or C.

Examples

ASCII Tree --> Vertices and an Adjacency Matrix

     R
    /|\
   A B C
  /  | |
 D   E F
 |      \
 G       H


-->

Vertices = 
Vertex(id='R', rank=0)
Vertex(id='A', rank=2)
Vertex(id='B', rank=2)
Vertex(id='C', rank=2)
Vertex(id='D', rank=4)
Vertex(id='E', rank=4)
Vertex(id='F', rank=4)
Vertex(id='G', rank=6)
Vertex(id='H', rank=6)

Adj = 
[0]
[1, 0]
[1, 0, 0]
[1, 0, 0, 0]
[0, 1, 0, 0, 0]
[0, 0, 1, 0, 0, 0]
[0, 0, 0, 1, 0, 0, 0]
[0, 0, 0, 0, 1, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 1, 0, 0]

Error Checking

     R
    /|\  
   A B C
  /  | |   |
 D   E F


-->

Stray edge segment '|' in graph at row 3, col 11.

Meaningful Vertex Names

     R
    /|\  
   A B C
  /  | | 
 <    \ \
  \    E F  
   \    /
    \  /
Long_Name
 

-->

Vertices = 
Vertex(id='R', rank=0)
Vertex(id='A', rank=2)
Vertex(id='B', rank=2)
Vertex(id='C', rank=2)
Vertex(id='E', rank=5)
Vertex(id='F', rank=5)
Vertex(id='Long_Name', rank=8)

Adj = 
[0]
[1, 0]
[1, 0, 0]
[1, 0, 0, 0]
[0, 0, 1, 0, 0]
[0, 0, 0, 1, 0, 0]
[0, 1, 0, 0, 0, 1, 0]

Loops and Multigraphs





       ^
      / \
     <   >
      \ /
       B

-->

Vertices = 
Vertex(id='B', rank=5)

Adj = 
[2]




       A
      / \  
     <   >
      \ / 
       B


-->

Vertices = 
Vertex(id='A', rank=1)
Vertex(id='B', rank=5)

Adj = 
[0]
[2, 0]

Stay tuned for more

About

Compiles a visual text representation of a graph into a vertex list and adjacency matrix.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages