graphs graphs provide the ultimate in data structure flexibility graphs can model both real-world systems and abstract problemsso they are used in hundreds of applications here is small sampling of the range of problems that graphs are applied to modeling connectivity in computer and communications networks representing map as set of locations with distances between locationsused to compute shortest routes between locations modeling flow capacities in transportation networks finding path from starting condition to goal conditionfor examplein artificial intelligence problem solving modeling computer algorithmsshowing transitions from one program state to another finding an acceptable order for finishing subtasks in complex activitysuch as constructing large buildings modeling relationships such as family treesbusiness or military organizationsand scientific taxonomies we begin in section with some basic graph terminology and then define two fundamental representations for graphsthe adjacency matrix and adjacency list section presents graph adt and simple implementations based on the adjacency matrix and adjacency list section presents the two most commonly used graph traversal algorithmscalled depth-first and breadth-first searchwith application to topological sorting section presents algorithms for solving some problems related to finding shortest routes in graph finallysection presents algorithms for finding the minimum-cost spanning treeuseful for determining lowest-cost connectivity in network besides being useful and interesting in their own rightthese algorithms illustrate the use of some data structures presented in earlier