Download presentation
Presentation is loading. Please wait.
Published byDuane Hoover Modified over 9 years ago
1
Chapter 12 Abstract Data Type
2
Understand the concept of an abstract data type (ADT). Understand the concept of a linear list as well as its operations and applications. After reading this chapter, the reader should be able to: O BJECTIVES Understand the concept of a stack as well as its operations and applications. Understand the concept of a queue as well as its operations and applications. Understand the concept of a tree as well as its operations and applications. Understand the concept of a graph as well as its operations and applications.
3
BACKGROUNDBACKGROUND 12.1
4
Abstract Data Type (ADT) An Abstract Data Type (ADT) is a data structure and a collection of functions which operate on the data structure. Stack – The operations new(), push(v, S), top(S), and pop(S) may be defined with axiomatic semantics as following. new() returns a stack pop(push(v, S)) = S top(push(v, S)) = v where S is a stack and v is a value.
5
The concept of abstraction means: 1. You know what a data type can do. 2. How it is done is hidden. Note:
6
Queue problem Queue simulation queue enqueuing dequeuing
7
Abstract Data Type 1.Declaration of data 2.Declaration of operations 3.Encapsulation of data and operations Note:
8
Stack problem Stack – The operations new(), push(S, v), top(S), and popoff(S) may be defined with axiomatic semantics as following. new() returns a stack popoff(push(S, v)) = S top(push(S, v)) = v where S is a stack and v is a value. The pop operation is a combination of top, to return the top value, and popoff, to remove the top value.
9
Figure 12-1 Model for ADT
10
LINEARLISTSLINEARLISTS 12.2
11
Figure 12-2 Linear list Linear List is a list in which each element has a unique successor.
12
Figure 12-3 Categories of linear lists Data can be inserted and deleted anywhere. Data can only be inserted and deleted at the ends of the structure.
13
Figure 12-4 Insertion in a general linear list with ordered data
14
Figure 12-5 Deletion from a linear list
15
Figure 12-6 Retrieval from a linear list
16
Figure 12-7 Traversal of a linear list Traversal is an operation in which all elements in the list are processed sequentially, one by one.
17
Implementation Two common methods: Array Linked list
18
STACKSSTACKS 12.3
19
Figure 12-8 Three representations of a stack Stacks A restricted linear list in which all additions and deletions are made at one end, called the top. A LIFO (Last In, First Out) data structure.
20
Figure 12-9 Push operation in a stack
21
Figure 12-10 Pop operation in a stack
22
Example 1 Show the result of the following operations on a stack S. push (S, 10) push (S, 12) push (S, 8) if not empty (S), then pop (S) push (S, 2) Solution
23
Implementation Two common methods: Array Linked list (more common) Applications Reversing data 1,2,3,4 → 4,3,2,1 Parsing Unmatched parentheses in an algebraic expression Postponing data Postfix: ab+c* → (a+b)*c, abc+* → a*(b+c) Backtracking steps Computer gaming
24
QUEUESQUEUES 12.4
25
Figure 12-12 Queue representation Queues A restricted linear list in which data can only be inserted at one end (rear) and deleted from the other end (front). A FIFO (First In, First Out) data structure.
26
Figure 12-13 Enqueue operation
27
Figure 12-14 Dequeue operation
28
Example 2 Show the result of the following operations on a queue Q. enqueue (Q, 23) if not empty (Q), dequeue (Q) enqueue (Q, 20) enqueue (Q, 19) if not empty (Q), dequeue (Q) Solution
29
Implementation Two common methods: Array Linked list (more common) Applications found in virtually every OS and network and in countless other areas.
30
TREESTREES 12.5
31
Trees A Tree consists of a finite set of elements called Nodes a finite set of directed lines, called Branches, that connect the nodes Degree of a node – number of branches associated with the node. Indegree branch Outdegree branch Root – The first node of a tree Indegree : 0 Other nodes – Indegree : 1 All nodes – outdegree : 0, 1 or more.
32
Figure 12-16 Representation of a tree
33
Trees Leaf – Outdegree : 0 Internal nodes – a node that is not a root or a leaf. Parent – A node with successors outdegree : > 0 Child – A node with a predecessor indegree : 1 Siblings – two or more nodes with the same parent. Ancestor – any node in the path from the root to the node. Descendant – any node in the path from the node to a leaf.
34
Trees Path – a sequence of nodes in which each node is adjacent to the next one. Level of a node – its distance from the root. Root : 0 Height (Depth) of the tree – the level of the leaf in the longest path from the root plus 1. Subtree – any connected structure below the root.
35
Figure 12-17 Tree terminology Height : 3
36
Figure 12-18 Subtrees
37
BINARYTREESBINARYTREES 12.6
38
Binary Trees Binary tree – A tree in which no node can have more than two subtrees. Null tree - A tree with no node. Height of a Binary Tree – (with N nodes) H max = N H min = [log 2 N] +1 # of nodes of a binary tree – (Given height H) N min = H N max = 2 H - 1
39
Figure 12-19 Binary tree
40
Figure 12-20 Examples of binary trees
41
Balanced Trees The distance of a node from the root determines how efficiently it can be located. Balance Factor of a Binary Tree – is the difference in height between its left and right subtrees. B = H L - H R A binary tree is balanced if the height of its subtrees differs by no more than 1 (B = -1, 0, or +1) and its subtrees are also balanced.
42
A BC D F E
43
Binary Tree Traversal Binary Tree Traversal each node of the tree be processed once and only once in a predetermined sequence. Depth-First Traversal – Preorder Traversal (NLR) – Inorder Traversal (LNR) – Postorder Traversal (LRN) – Need a stack Breadth-First Traversal – process all of the children of a node before proceeding with the next level. Need a queue
44
Figure 12-21 Depth-first traversal of a binary tree NLR LNR LRN
45
Figure 12-22 Preorder traversal of a binary tree A, B, C, D, E, F
46
Figure 12-23 Inorder traversal of a binary tree C, B, D, A, E, F
47
Figure 12-24 Postorder traversal of a binary tree C, D, B, F, E, A
48
Figure 12-25 Breadth-first traversal of a binary tree
49
Implementation A binary tree is normally implemented as a linked list. Applications Expression tree – a binary tree with the following properties: Each leaf is an operand The root and internal nodes are operators. Subtrees are subexpressions, with the root being an operator. Three different expression formats: 1. Infix expression 2. Postfix expression – produced by Postorder traversal 3. Prefix expression – produced by Preorder traversal
50
Figure 12-26 Expression tree Infix expression: Prefix expression: + * a + b c d Postfix expression: a b c + * d +
51
GRAPHSGRAPHS 12.7
52
Graphs A Graph consists of A set of vertices (sing. vertex) and A set of lines (connecting pairs of vertices) Directed graph (digraph) – each line has a direction to its successor - arc Undirected graph – each line has no direction – edge Adjacent vertices (neighbors) – two vertices directly connected by a line Path – a sequence of vertices in which each vertex is adjacent to the next one. Cycle – a path consisting of at least three vertices that starts and ends with the same vertex.
53
Graphs Two vertices are said to be connected if there is a path between them. A graph is said to be connected (suppressing direction) if there is a path from any vertex to any other vertex. A directed graph is strongly connected if there is a path from each vertex to every other vertex. A directed graph is weekly connected if at least two vertices are not connected.
54
Figure 12-27 Directed and undirected graphs
55
Figure 12-28 Add vertex
56
Figure 12-29 Delete vertex
57
Figure 12-30 Add edge
58
Figure 12-31 Delete edge
59
Figure 12-32 Find vertex
60
Traverse Graph You must somehow ensure that you process the data in each vertex only once. Visited flag Two standard graph traversals Depth-first traversal – you process a vertex’s descendants before you move to an adjacent vertex. Breadth-first traversal – you process all adjacent vertices of a vertex before going to the next level.
61
Figure 12-33 Depth-first traversal of a graph 在不同的資料結構下,即使起始點相同,產生的順序亦有所不同。
62
Figure 12-34 Breadth-first traversal of a graph 在不同的資料結構下,即使起始點相同,產生的順序亦有所不同。
63
Implementation Two common methods: Array (adjacency matrix) Linked list (adjacency list) Applications Network Weighted graph - a graph with weighted lines. Minimum Spanning Tree A spanning tree is a tree that contains all of the vertices in the graph. A minimum spanning tree is a spanning tree such that the sum of its weights is the minimum.
64
Figure 12-35: Part I Graph implementations Weight (e.g. distance between networks in an internetwork)
65
Figure 12-35: Part 2 Graph implementations
66
12 3456 7 0
67
10 40 20 30
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.