may seem inefficientbut there' no convenient way to create triangular array in most computer languagesso it' simpler to accept the redundancy consequentlywhen you add an edge to the graphyou must make two entries in the adjacency matrix rather than one the adjacency list the other way to represent edges is with an adjacency list the list in adjacency list refers to linked list of the kind we examined in "recursion actuallyan adjacency list is an array of lists (or list of listseach individual list shows what vertices given vertex is adjacent to table shows the adjacency lists for the graph of figure - table adjacency lists vertex list containing adjacent vertices in this tablethe symbol indicates link in linked list each link in the list is vertex here the vertices are arranged in alphabetical order in each listalthough that' not really necessary don' confuse the contents of adjacency lists with paths the adjacency list shows which vertices are adjacent to--that isone edge away from-- given vertexnot paths from vertex to vertex later we'll discuss when to use an adjacency matrix as opposed to an adjacency list the workshop applets shown in this all use the adjacency matrix approachbut sometimes the list approach is more efficient adding vertices and edges to graph to add vertex to graphyou make new vertex object with new and insert it into your vertex arrayvertexlist in real-world program vertex might contain many data itemsbut for simplicity we'll assume that it contains only single character thus the creation of vertex looks something like thisvertexlist[nverts++new vertex(' ')this inserts vertex fwhere nverts is the number of vertices currently in the graph how you add an edge to graph depends on whether you're using an adjacency matrix or adjacency lists to represent the graph let' say that you're using an adjacency matrix and want to add an edge between vertices and these numbers correspond to the