Review Linked List Insertion Description Deletion Description Basic Node Implementation Conclusion 1.

Slides:



Advertisements
Similar presentations
Traversing a Binary Tree Binary Search Tree Insertion Deleting from a Binary Search Tree.
Advertisements

Linked List: Traversal Insertion Deletion. Linked List Traversal LB.
Page 11 Solutions to Practice Problems Using a Linked List From Previous Days Notes Create C functions to solve the following problems with linked lists.
Linear Lists – Linked List Representation
DATA STRUCTURES USING C++ Chapter 5
Linked List 1. Introduction to Linked List 2. Node Class 3. Linked List 4. The Bag Class with Linked List.
Reference Details (copying, comparing). References You were introduced to the concept of pointers earlier this term. The pointer capabilities in pseudocode.
Linked Lists Compiled by Dr. Mohammad Alhawarat CHAPTER 04.
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with C++ Early Objects Sixth Edition Chapter 17: Linked Lists.
C++ Programming: Program Design Including Data Structures, Third Edition Chapter 17: Linked Lists.
Starting Out with C++: Early Objects 5/e © 2006 Pearson Education. All Rights Reserved Starting Out with C++: Early Objects 5 th Edition Chapter 17 Linked.
Summary of lectures (1 to 11)
Starting Out with C++: Early Objects 5/e © 2006 Pearson Education. All Rights Reserved Starting Out with C++: Early Objects 5 th Edition Chapter 19 Binary.
C++ Programming: Program Design Including Data Structures, Fifth Edition Chapter 17: Linked Lists.
Searching via Traversals Searching a Binary Search Tree (BST) Binary Search on a Sorted Array Data Structure Conversion and Helper Modules.
Generic Classes Use Cases Inheritance. Generic Classes.
CMPSC 16 Problem Solving with Computers I Spring 2014 Instructor: Lucas Bang Lecture 15: Linked data structures.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with C++ Early Objects Seventh Edition by Tony Gaddis, Judy.
Announcements NP-Complete Problems Decidable vs. Undecidable Problems Review.
Searching Given a collection and an element (key) to find… Output –Print a message (“Found”, “Not Found) –Return a value (position of key ) Don’t modify.
CS162 - Topic #11 Lecture: Recursion –Problem solving with recursion –Work through examples to get used to the recursive process Programming Project –Any.
Data Structures Using Java1 Chapter 4 Linked Lists.
© Copyright 2012 by Pearson Education, Inc. All Rights Reserved. 1 Chapter 18 Linked Lists, Stacks, Queues, and Priority Queues.
Bubble Sort Merge Sort. Bubble Sort Sorting Sorting takes an unordered collection and makes it an ordered one
Sorting Techniques Rizwan Rehman Centre for Computer Studies Dibrugarh University.
Class Examples (Simple, Airplane, Queue, Pile) Copy vs. Clone.
Announcements Review problems Review Outline. Online Survey
1 Chapter 16 Linked Structures Dale/Weems. 2 Chapter 16 Topics l Meaning of a Linked List l Meaning of a Dynamic Linked List l Traversal, Insertion and.
Introduction to Classes and Objects Initializing Objects Making Use of Classes in Algorithms Class Examples.
Review Records Dynamic Memory and Pointers Introduction to Linked Lists.
Starting Out with C++ Early Objects Seventh Edition by Tony Gaddis, Judy Walters, and Godfrey Muganda Chapter 17: Linked Lists.
Starting Out with C++ Early Objects Seventh Edition by Tony Gaddis, Judy Walters, and Godfrey Muganda Modified for use at Midwestern State University Chapter.
Introduction to Classes and Objects. Real Life When a design engineer needs an electrical motor he doesn’t need to worry about –How a foundry will cast.
APS105 Lists. Structures Arrays allow a collection of elements –All of the same type How to collect elements of different types? –Structures; in C: struct.
Review Problems. What is the Big O? i
Binary Search Trees (BST)
Tree Data Structures. Heaps for searching Search in a heap? Search in a heap? Would have to look at root Would have to look at root If search item smaller.
Graphs Arrays Iteration Combining Data Structures.
Linked Lists. Array List Issues Painful insert/remove at start/middle.
Copyright © 2012 Pearson Education, Inc. Chapter 20: Binary Trees.
Stacks Queues Introduction to Trees. Stacks An Everyday Example Your boss keeps bringing you important items to deal with and keeps saying: “Put that.
2005MEE Software Engineering Lecture 7 –Stacks, Queues.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with C++ Early Objects Seventh Edition by Tony Gaddis, Judy.
Chapter 17: Linked Lists. Objectives In this chapter, you will: – Learn about linked lists – Learn the basic properties of linked lists – Explore insertion.
1 Linked List. Outline Introduction Insertion Description Deletion Description Basic Node Implementation Conclusion.
Linked Lists Chapter Introduction To The Linked List ADT Linked list: set of data structures (nodes) that contain references to other data structures.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with C++ Early Objects Seventh Edition by Tony Gaddis, Judy.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 20: Binary Trees.
Arrays, Link Lists, and Recursion Chapter 3. Sorting Arrays: Insertion Sort Insertion Sort: Insertion sort is an elementary sorting algorithm that sorts.
© Oxford University Press All rights reserved. Data Structures Using C, 2e Reema Thareja.
Chapter 16: Linked Lists.
Linked List :: Basic Concepts
Review Deleting an Element from a Linked List Deletion involves:
Data Structure Dr. Mohamed Khafagy.
Linked lists.
Lecture 14 Traversals of Linked Lists Preorder BST Traversal Postorder BST Traversal Miscellaneous BST Traversals Depth First vs Breadth First Array Traversals.
Linked List Variations
Simple Dynamic Data (Linked Lists)
Chapter 20: Binary Trees.
Linked List Sudeshna Sarkar.
Map interface Empty() - return true if the map is empty; else return false Size() - return the number of elements in the map Find(key) - if there is an.
Linked node problem 3 What set of statements turns this picture:
Chapter 21: Binary Trees.
Computer Science 2 Outline/Learning Objectives for the day:
Building Java Programs
Linked Lists.
EECE.3220 Data Structures Instructor: Dr. Michael Geiger Spring 2019
Linked lists.
Linked List Insert After
CMPT 225 Lecture 5 – linked list.
Presentation transcript:

Review Linked List Insertion Description Deletion Description Basic Node Implementation Conclusion 1

Linked List Traversal Inserting into a linked list involves two steps: Find the correct location Do the work to insert the new value We can insert into any position Front End Somewhere in the middle (to preserve order) 2

Linked List Traversal Traversal means “visiting” or examining each node. Simple linked list Start at the beginning Go one node at a time until the end Recursive procedure (or function) Given a head pointer Looks at just one node What procedure will look at the rest? 3

The Node Code Node definesa record data isoftype Num next isoftype Ptr toa Node endrecord 4

The Big Picture 42 heap stack head LB 5

The Little Picture 12 6

The Classic Code Procedure Traverse (current isoftype in Ptr toa Node) // Precon: Pass in pointer to a list // Purpose: Print each data item // Postcon: No changes to list if(current <> NIL) then print(current^.data) Traverse(current^.next) endif endprocedure // Traverse 7

The Big Picture 42 heap stack head

9 Insertion Into Linked Lists

Node Definition node definesa record data isoftype Num next isoftype ptr toa node endrecord 10

The Scenario You have a linked list Perhaps empty, perhaps not Perhaps ordered, perhaps not You want to add an element into the linked list head // 11

Adding an Element to a Linked List Involves two steps: Finding the correct location Doing the work to add the node 12

Finding the Correct Location Three possible positions: The front The end Somewhere in the middle 13

head Inserting to the Front There is no work to find the correct location Empty or not, head will point to the right location head 93 14

Inserting to the End Find the end of the list (when at NIL) Recursion or iteration head // 93 // Don’t Worry! 15

Inserting to the Middle Used when order is important Go to the node that should follow the one to add Recursion or iteration head // 93 //

The Work to Add the Node Create the new node Fill in the data field Deal with the next field Point to nil (if inserting to end) Point to current (front or middle) temp <- new(Node) temp^.data <- new_data temp^.next <- current current <- temp 17

Three Types of Insertion To front No recursion needed To end Get to the end, then add node In order (in middle) To maintain sorted property 18

19 Inserting at the Front of a Linked List

Inserting to the Front of a Linked List Need an in/out pointer parameter Create new node Fill in data Make new node’s next pointer point to current Update current to point to new node 20

procedure Insert (current iot in/out ptr toa Node, new_data isoftype in Num) temp isoftype ptr toa Node temp <- new(Node) temp^.data <- new_data temp^.next <- current current <- temp endprocedure 4 17 head 42 Current new_data temp 2 R 2 Animated Insert to Front of Linked List (current iot in/out ptr toa Node, temp <- new(Node) temp^.data <- new_data temp^.next <- current current <- temp 21

22 Inserting at the End of a Linked List

Inserting to End of a Linked List Recursively traverse the list until at end Then: Create new node at current Fill in data Terminate the new node’s next pointer to point to NIL 23

Inserting to the End of a Linked List procedure Add_To_End( current isoftype in/out Ptr toa Node, new_data isoftype in Num ) // Purpose: Add new node to end of list // Pre: current points to NIL-terminated list // Post: new list has added element at end if( current = NIL ) then current <- new( Node ) current^.data <- new_data current^.next <- NIL else Add_To_End( current^.next, new_data) endif endprocedure //Add_To_End 24

head 53 current new_data 53 R R R R Inserting at the End of a Linked List 25

Inserting in Order into a Linked List

Inserting In Order into a Linked List Recursively traverse until you find the correct place to insert Compare to see if you need to insert before current If adding largest value, then insert at the end Perform the commands to do the insertion Create new node Add data Update the next pointer of the new node Update current to point to new node 27

Inserting in Order into a Linked List procedure Insert_In_Order(current isoftype in/out Ptr toa Node, new_data isoftype in Num ) // comments here temp isoftype Ptr toa Node if ((current = NIL) OR (current^.data > new_data)) then temp <- new( Node ) temp^.data <- new_data temp^.next <- current current <- temp else Insert_In_Order(current^.next,new_data) endif endprocedure //Insert_In_Order 28

Head Inserting In Order into a Linked List 19 current new_data temp R 19 current new_data temp R 19 current new_data temp R 19 29

Summary Inserting into a linked list involves two steps: Find the correct location Do the work to insert the new value We can insert into any position Front End Somewhere in the middle 30