Chapter 9 Abstract Data Types and Algorithms Nell Dale John Lewis.

Slides:



Advertisements
Similar presentations
Abstract Data Types and Algorithms
Advertisements

Abstract Data Types and Subprograms
©Brooks/Cole, 2003 Chapter 12 Abstract Data Type.
Abstract Data Types and Subprograms
Chapter 8 Abstract Data Types and Subprograms. 2 Chapter Goals Distinguish between an array-based visualization and a linked visualization Distinguish.
Data Structures Data Structures Topic #13. Today’s Agenda Sorting Algorithms: Recursive –mergesort –quicksort As we learn about each sorting algorithm,
Connecting with Computer Science, 2e
Lists A list is a finite, ordered sequence of data items. Two Implementations –Arrays –Linked Lists.
CS 104 Introduction to Computer Science and Graphics Problems Data Structure & Algorithms (4) Data Structures 11/18/2008 Yang Song.
©Brooks/Cole, 2003 Chapter 12 Abstract Data Type.
Chapter 12 C Data Structures Acknowledgment The notes are adapted from those provided by Deitel & Associates, Inc. and Pearson Education Inc.
CS 206 Introduction to Computer Science II 03 / 25 / 2009 Instructor: Michael Eckmann.
CS 206 Introduction to Computer Science II 11 / 09 / 2009 Instructor: Michael Eckmann.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Chapter 12 – Data Structures Outline 12.1Introduction.
Important Problem Types and Fundamental Data Structures
Binary Trees Chapter 6.
Slides modified by Erin Chambers Problem Solving and Algorithm Design, part 2.
Trees & Graphs Nell Dale & John Lewis (adaptation by Michael Goldwasser and Erin Chambers)
Chapter 9 Abstract Data Types and Algorithms. 2 Abstract Data Types Abstract data type A data type whose properties (data and operations) are specified.
Compiled by: Dr. Mohammad Alhawarat BST, Priority Queue, Heaps - Heapsort CHAPTER 07.
Connecting with Computer Science 2 Objectives Learn what a data structure is and how it is used Learn about single and multidimensional arrays and how.
Chapter 9 Abstract Data Types and Algorithms. 2 Chapter Goals Define an abstract data type and discuss its role in algorithm development Distinguish between.
Chapter 16: Searching, Sorting, and the vector Type.
Chapters 7, 8, & 9 Quiz 3 Review 1. 2 Algorithms Algorithm A set of unambiguous instructions for solving a problem or subproblem in a finite amount of.
Chapter 8: Data Abstractions Senem Kumova Metin. 8-2 Chapter 8: Data Abstractions 8.1 Basic Data Structures – Arrays – Lists, Stacks, Queues – Trees 8.2.
Connecting with Computer Science, 2e Chapter 8 Data Structures.
Chapter 9 Priority Queues, Heaps, Graphs, and Sets.
Chapter 6 Binary Trees. 6.1 Trees, Binary Trees, and Binary Search Trees Linked lists usually are more flexible than arrays, but it is difficult to use.
Sorting Sorting Arranging items in a collection so that there is an ordering on one (or more) of the fields in the items Sort Key The field (or fields)
Chapter 9 (modified) Abstract Data Types and Algorithms Nell Dale John Lewis.
9-1 Abstract Data Types Abstract data type A data type whose properties (data and operations) are specified independently of any particular implementation.
Sorting. Pseudocode of Insertion Sort Insertion Sort To sort array A[0..n-1], sort A[0..n-2] recursively and then insert A[n-1] in its proper place among.
ACM/JETT Workshop - August 4-5, 2005 Using Visualization Tools To Teach Data Structures and Algorithms Java applets by Dr. R. Mukundan, University of Canterbury,
Chapter 8 Data Abstractions. © 2005 Pearson Addison-Wesley. All rights reserved 8-2 Chapter 8: Data Abstractions 8.1 Data Structure Fundamentals 8.2 Implementing.
© 2010 Pearson Addison-Wesley. All rights reserved. Addison Wesley is an imprint of CHAPTER 12: Multi-way Search Trees Java Software Structures: Designing.
Data Structure & Algorithm II.  In a multiuser computer system, multiple users submit jobs to run on a single processor.  We assume that the time required.
Chapter 12: Collections by Lewis and Loftus (Updated by Dan Fleck) Coming up: Collections.
Cousin of the Stack.  An abstract data type (container class) in which items are entered at one end and removed from the other end  First In First.
Data Structures Types of Data Structure Data Structure Operations Examples Choosing Data Structures Data Structures in Alice.
The List ADT A sequence of zero or more elements A 1, A 2, A 3, … A N-1 N: length of the list A 1 : first element A N-1 : last element A i : position i.
Sorting and Searching. Selection Sort  “Search-and-Swap” algorithm 1) Find the smallest element in the array and exchange it with a[0], the first element.
The ADT Table The ADT table, or dictionary Uses a search key to identify its items Its items are records that contain several pieces of data 2 Figure.
Data Structures Chapter 6. Data Structure A data structure is a representation of data and the operations allowed on that data. Examples: 1.Array 2.Record.
CPSC 252 Binary Heaps Page 1 Binary Heaps A complete binary tree is a binary tree that satisfies the following properties: - every level, except possibly.
Chapter 8 Abstract Data Types and Subprograms. 2 Chapter Goals Distinguish between an array-based visualization and a linked visualization Distinguish.
BINARY TREES Objectives Define trees as data structures Define the terms associated with trees Discuss tree traversal algorithms Discuss a binary.
Data Structure and Algorithms
Computer Science: A Structured Programming Approach Using C1 Objectives ❏ To introduce the basic concepts of linked lists ❏ To introduce the basic concepts.
CPS120: Introduction to Computer Science Sorting.
Chapter 9 Abstract Data Types and Algorithms Nell Dale John Lewis.
Chapter 16: Searching, Sorting, and the vector Type.
CPS120: Introduction to Computer Science Nell Dale John Lewis Abstract Data Types.
CPS120: Introduction to Computer Science Sorting.
UNIT-V ABSTRACT DATA TYPE 1.LIST 2.STACK 3.QUEUE EC6301-II-ECE-C.
Mohammed I DAABO COURSE CODE: CSC 355 COURSE TITLE: Data Structures.
Data Structure By Amee Trivedi.
Set Collection A Bag is a general collection class that implements the Collection interface. A Set is a collection that resembles a Bag with the provision.
Chapter 12 – Data Structures
Top 50 Data Structures Interview Questions
Data Structure Interview Question and Answers
Chapter 15 Lists Objectives
Abstract Data Types and Subprograms
Introduction to Data Structure
structures and their relationships." - Linus Torvalds
ITEC 2620M Introduction to Data Structures
CPS120: Introduction to Computer Science
CPS120: Introduction to Computer Science
Important Problem Types and Fundamental Data Structures
structures and their relationships." - Linus Torvalds
Chapter 11 Trees © 2011 Pearson Addison-Wesley. All rights reserved.
Presentation transcript:

Chapter 9 Abstract Data Types and Algorithms Nell Dale John Lewis

9-2 Chapter Goals Define an abstract data type and discuss its role in algorithm development Distinguish between a data type and a data structure Distinguish between an array-based implementation and a linked implementation Distinguish between an array and a list

9-3 Chapter Goals (cont.) Distinguish between an unsorted list and a sorted list Distinguish between a selection sort and a bubble sort Describe the Quicksort algorithm Apply the selection sort, the bubble sort, and the Quicksort to a list of items by hand Apply the binary search algorithm

9-4 Chapter Goals (cont.) Distinguish between the behavior of a stack and a queue Draw the binary search tree that is built from inserting a series of items Demonstrate your understanding of the algorithms in this chapter by hand simulating them with a sequence of items

9-5 Abstract Data Types Abstract data type: a data type whose properties (data and operations) are specified independently of any particular implementation The goal in design is to reduce complexity through abstraction

9-6 Abstract Data Types In computing, we view data from three perspectives –Application level View of the data within a particular problem –Logical level An abstract view of the data values (the domain) and the set of operations to manipulate them –Implementation level A specific representation of the structure to hold the data items and the coding of the operations in a programming language

9-7 Abstract Data Types Data structures: the implementation of a composite data fields in an abstract data type –Containers in which data items are stored

9-8 Array-Based Implementations Recall –an array is a named collection of homogeneous items –The items’ place within the collection is called an index If there is no ordering on the item in the container, we call the container unsorted If there is an ordering, we call the container sorted

9-9 Array-Based Implementations Figure 9.1 A list

9-10 Array-Based Implementations Figure 9.2 An unsorted list of integers

9-11 Array-Based Implementations Figure 9.3 A sorted list of integers

9-12 Linked Implementation Linked implementation: based on the concept of a node A node is made up of two pieces of data: the item that the user wants in the list and a pointer to the next node in the list

9-13 Linked Implementation Figure 9.4 Anatomy of a linked list

9-14 Linked Implementation Figure 9.5 An unsorted linked list

9-15 Linked Implementation Figure 9.6 A sorted linked list

9-16 Linked Implementation Figure 9.7 Store a node with info of 67 after current

9-17 Linked Implementation Figure 9.8 Remove node next(current)

9-18 Lists List operations –Create itself –Insert an item –Delete an item –Print itself –Know the number of items it contains A generic data type (or class) is one in which the operations are specified but the type or class of the objects being manipulated is not

9-19 Sorting Because sorting a large number of elements can be extremely time- consuming, a good sorting algorithm is very desirable We present several quite different sorting algorithms

9-20 Selection Sort List of names –Put them in alphabetical order Find the name that comes first in the alphabet, and write it on a second sheet of paper Cross out the name on the original list Continue this cycle until all the names on the original list have been crossed out and written onto the second list, at which point the second list is sorted

9-21 Selection Sort (cont.) A slight adjustment to this manual approach does away with the need to duplicate space –As you cross a name off the original list, a free space opens up –Instead of writing the minimum value on a second list, exchange it with the value currently in the position where the crossed-off item should go

9-22 Selection Sort Figure 9.9 Example of a selection sort (sorted elements are shaded)

9-23 Bubble Sort A selection sort that uses a different scheme for finding the minimum value –Starting with the last list element, we compare successive pairs of elements, swapping whenever the bottom element of the pair is smaller than the one above it

9-24 Bubble Sort Figure 9.10 Example of a bubble sort

9-25 Quicksort Based on the idea that it is faster and easier to sort two small lists than one larger one –Given a large stack of final exams to sort by name –Pick a splitting value, say L, and divide the stack of tests into two piles, A–L and M–Z –note that the two piles do not necessarily contain the same number of tests –Then take the first pile and subdivide it into two piles, A–F and G–L –This division process goes on until the piles are small enough to be easily sorted by hand

9-26 Quicksort Figure 9.12 Ordering a list using the Quicksort algorithm

9-27 Quicksort Page 292

9-28 Quicksort Pages 292–293

9-29 Quicksort Page 293

9-30 Binary Search A sequential search of a list begins at the beginning of the list and continues until the item is found or the entire list has been searched

9-31 Binary Search A binary search looks for an item in a list using a divide- and-conquer strategy –Binary search algorithm assumes that the items in the list being searched are sorted –The algorithm begins at the middle of the list in a binary search –If the item for which we are searching is less than the item in the middle, we know that the item won’t be in the second half of the list –Once again we examine the “middle” element (which is really the item 25% of the way into the list) –The process continues with each comparison cutting in half the portion of the list where the item might be

9-32 Binary Search Page 296

9-33 Binary Search Figure 9.14 Trace of the binary search

9-34 Binary Search Table 9.1 Average Number of Comparisons

9-35 Stacks A stack is an abstract data type in which accesses are made at only one end –LIFO, which stands for Last In First Out –The insert is called Push and the delete is called Pop

9-36 Queues Queue is an abstract data type in which items are entered at one end and removed from the other end –FIFO, for First In First Out –Like a waiting line in a bank or supermarket –No standard queue terminology Enqueue, Enque, Enq, Enter, and Insert are used for the insertion operation Dequeue, Deque, Deq, Delete, and Remove are used for the deletion operation.

9-37 Trees ADTs such as lists, stacks, and queues are linear in nature More complex relationships require more complex structures

9-38 Trees Figure 9.15 Stack and queue visualized as linked structures

Trees Hierarchical structures are called trees Binary trees –Each node has no more than two children –The beginning of the tree is a unique starting node called the root –The node to the left of a node, if it exists, is called its left child –The node to the right of a node, if it exists, is its right child –If a node in the tree has no children, it is called a leaf node Figure 9.16 A binary tree

9-40 Binary Search Trees A binary search tree has the shape property of a binary tree In addition, a binary search tree has a semantic property among the values in the nodes in the tree: –The value in any node is greater than the value in any node in its left subtree and less than the value in any node in its right subtree

9-41 Binary Search Tree Figure 9.18 A binary search tree

9-42 Binary Search Tree Page 305

9-43 Binary Search Tree Page 305

9-44 Binary Search Tree Page 306

9-45 Graphs Graph: a data structure that consists of a set of nodes and a set of edges that relate the nodes to each other Undirected graph: a graph in which the edges have no direction Directed graph (Digraph): a graph in which each edge is directed from one vertex to another (or the same) vertex

9-46 Graphs Figure 9.21 Examples of graphs

9-47 Graphs Figure 9.21 Examples of graphs

9-48 Graphs Figure 9.21 Examples of graphs

9-49 Ethical Issues: Web Content The World Wide Web has revolutionized communication, providing an unprecedented forum for information exchange and self- expression Consider the pros and cons of censorship. Pornographic material, instructions for making bombs, hate propaganda, and Web fraud are at the center of this debate Some people choose to use filtering and blocking systems