View
221
Download
0
Tags:
Embed Size (px)
Citation preview
Lists
• A list is a finite, ordered sequence of data items.
• Two Implementations– Arrays– Linked Lists
Comparison of Implementations
Array-Based Lists:• Insertion is O( ).• Direct access is ( ).• No overhead if all array positions are full.
Linked Lists:• Insertion is ( ).• Direct access is O( ).• Every element requires overhead.
Stacks
LIFO: Last In, First Out.
Restricted form of list: Insert and remove only at front of list.
Notation:• Insert: PUSH• Remove: POP• The accessible element is called TOP.
Queues
FIFO: First in, First Out
Restricted form of list: Insert at one end, remove from the other.
Notation:• Insert: Enqueue• Delete: Dequeue• First element: Front• Last element: Rear
Graphs
A graph G = (V, E) consists of a set of vertices V, and a set of edges E, such that each edge in E is a connection between a pair of vertices in V.
The number of vertices is denoted by |V| or n, and the number of edges is denoted by |E| or m.
Paths and CyclesPath: A sequence of vertices v1, v2, …, vn of length n-1 with an
edge from vi to vi+1 for 1 i < n.
A path is simple if all vertices on the path are distinct.
A cycle is a path of length 3 or more that connects vi to itself.
A cycle is simple if the path is simple, except the first and last vertices are the same.
Connected Components
An undirected graph is connected if there is at least one path from any vertex to any other.
The maximum connected subgraphs of an undirected graph are called connected components.
Bipartite Graphs• An undirected graph, G=(V,E), is called bipartite if V
can be partitioned into two non-empty sets X and Y such that each edge e in E has one end in X and the other in Y.
• A complete bipartite graph is
BA E
C F
Planar Graphs
• Definition: A graph G = (V,E) is planar if it can be embedded in the plane without edge crossings
Planar Graphs Properties
• Let m, n, and r denote the number of edges, the number of vertices, and the number of regions in a planar graph, respectively.
1. n – m + r = 2 (Euler’s Formula)
2. m 3n – 6– m = O(n)
Rooted Trees• A tree T is a connected undirected graph
containing no cycles• A rooted tree is a tree with a
distinguished vertex r, called the root.
Theorem
• If T is a tree with n vertices, then– Any two vertices of T are connected by a
unique path.– T has exactly n-1 edges– The addition of one or more edges to T creates
a cycle.
Binary Trees
Notation: Node, children, edge, parent, ancestor, descendant, path, depth, height, level, leaf node, internal node, subtree.
Full and Complete Binary Trees
Full binary tree: Each node is either a leaf or internal node with exactly two non-empty children.
Complete binary tree: If the height of the tree is d, then all levels except possibly level d are completely full. Level d has all nodes filled in to the left side.
Useful Theorems
Theorem: The number of leaves in a non-empty full binary tree is one more than the number of internal nodes.
Theorem: The number of nodes at level j 2j.
Theorem: The number of nodes, n, in a complete binary tree T of height k is such that
2k n 2k+1-1
Theorem: The height of any binary tree with n vertices is at least log n and at most n – 1.
Traversals (1)
Any process for visiting the nodes in some order is called a traversal.
Any traversal that lists every node in the tree exactly once is called an enumeration of the tree’s nodes.
Traversals (2)
• Preorder traversal: Visit each node before visiting its children.
• Postorder traversal: Visit each node after visiting its children.
• Inorder traversal: Visit the left subtree, then the node, then the right subtree.