Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 12 Abstract Data Type. Understand the concept of an abstract data type (ADT). Understand the concept of a linear list as well as its operations.

Similar presentations


Presentation on theme: "Chapter 12 Abstract Data Type. Understand the concept of an abstract data type (ADT). Understand the concept of a linear list as well as its operations."— Presentation transcript:

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


Download ppt "Chapter 12 Abstract Data Type. Understand the concept of an abstract data type (ADT). Understand the concept of a linear list as well as its operations."

Similar presentations


Ads by Google