Graph
Graph is a interlinked list of nodes ,here each nodes can have one or many connections.
Nodes/ Vertices
The data in a graph is called a node or vertices .
Edges
the connection between the nodes are called edges.
Example
a social network where people are node and edges is the connection between them , if two people are friend with each other they would have edges :)
2 kinds of graphs
the do have a direction in the edges between the nodes example of a directed graph could be a internet and the web page links. the nodes are web pages and the links to the other webpages are the Edges.Directed Graph
the don't have any direction in the edges between the nodes example could be a social network where people are connected and can send messages to each another. and anyone can send and receive messages.UnDirected Graph
How to represent a graph
here each node is represented as a collection of it's neigbouring collection and the edges. a---b----c Node A: Node B Node B: Node A, Node B Node C: Node BAdjacency List
let unDirectedGraph = { NodeA: ["NodeB"], NodeB: ["NodeA", "NodeC"], NodeC: ["NodeB"],};//can also be represented as array where nodes have number rather then having a name .let UDgraph = { [1], //node A [0,1],//node B [1], // node C}
a----b----c maybe we can put it in a adjancecy martrix . | a|b |c a | 0|1 |0 b | 1|0 |1 c | 0|1 |0 here zero means their are no edges or relationships while one means their are edges or relationshipsAdjancecy Matrix
- this can be use to represent a directed graph
- the matrix is always a sqaure matrix since the number of rows would be eqaul to the coulmns
let adjMat = [ [0, 1, 0], [1, 0, 1], [0, 1, 0],];
it uses rows to represent nodes, and columns to represent the edges. we can have uneven number of rows and coumn here.Incidence Matrix