Download presentation
Presentation is loading. Please wait.
1
Yan Shi CS/SE 2630 Lecture Notes
4. LinkedList Yan Shi CS/SE 2630 Lecture Notes
2
Linked List Unsorted List Sorted List Double linked list
Circular linked list
3
Sorted and Unsorted Lists
Elements are placed into the list in no particular order. SORTED LIST List elements are in an order that is sorted in some way -- either numerically or alphabetically by the elements themselves, or by a component of the element (called a KEY member) .
4
ADT Unsorted List Operations
Transformers MakeEmpty PutItem DeleteItem Observers IsFull GetLength GetItem Iterators ResetList GetNextItem change state observe state process all
5
class UnsortedType<char>
Private data: length listData currentPos ? MakeEmpty ~UnsortedType ‘X’ ‘C’ ‘L’ GetItem PutItem DeleteItem . GetNextItem
6
Inserting ‘B’ into an Unsorted List
Private data: length listData currentPos ? ‘X’ ‘C’ ‘L’
7
location = new NodeType;
item location ‘B’ Private data: length listData currentPos ? ‘X’ ‘C’ ‘L’
8
location->info = item ;
‘B’ ‘B’ Private data: length listData currentPos ? ‘X’ ‘C’ ‘L’
9
location->next = listData ;
item location ‘B’ ‘B’ Private data: length listData currentPos ? ‘X’ ‘C’ ‘L’
10
listData = location ; item ‘B’ location ‘B’ Private data: length 3
currentPos ? ‘X’ ‘C’ ‘L’
11
length++ ; item ‘B’ location Private data: length 4 listData
currentPos ? ‘B’ ‘X’ ‘C’ ‘L’
12
Sorted Type Class Interface Diagram
MakeEmpty Private data: length info [ 0 ] [ 1 ] [ 2 ] [MAX_ITEMS-1] currentPos IsFull GetLength GetItem InsertItem DeleteItem ResetList GetNextItem
13
InsertItem algorithm for Sorted Array Based List
Find proper location for the new element in the sorted list. Create space for the new element by moving down all the list elements that will follow it. Put the new element in the list. Increment length.
14
DeleteItem algorithm for Sorted Array Based List
Find the location of the element to be deleted from the sorted list. Eliminate space occupied by the item by moving up all the list elements that follow it. Decrement length.
15
class SortedType<char>
Private data: length listData currentPos ? MakeEmpty ~SortedType ‘C’ ‘L’ ‘X’ RetrieveItem InsertItem DeleteItem . GetNextItem 15
16
InsertItem algorithm for Sorted Linked List
Find proper position for the new element in the sorted list using two pointers predLoc and location, where predLoc trails behind location. Obtain a node for insertion and place item in it. Insert the node by adjusting pointers. Increment length.
17
The Inchworm Effect
18
Inserting ‘S’ into a Sorted List
predLoc location Private data: length listData currentPos ? ‘C’ ‘L’ ‘X’ moreToSearch
19
Finding proper position for ‘S’
predLoc location NULL Private data: length listData currentPos ? ‘C’ ‘L’ ‘X’ moreToSearch true
20
Finding proper position for ‘S’
predLoc location Private data: length listData currentPos ? ‘C’ ‘L’ ‘X’ moreToSearch true
21
Finding Proper Position for ‘S’
predLoc location Private data: length listData currentPos ? ‘C’ ‘L’ ‘X’ moreToSearch false
22
Inserting ‘S’ into Proper Position
predLoc location Private data: length listData currentPos ‘C’ ‘L’ ‘X’ ‘S’ moreToSearch false
23
What is a Circular Linked List?
A circular linked list is a list in which every node has a successor; the “last” element is succeeded by the “first” element.
24
External Pointer to the Last Node
25
Why Circular Linked list?
It doesn’t make any operation much shorter or simpler… It is useful for applications that require access to both ends of the list. What if the data to be added to the linked list is presorted?
26
What is a Doubly Linked List?
A doubly linked list is a list in which each node is linked to both its successor and its predecessor.
27
Linking the New Node into the List
28
Deleting from a Doubly Linked List
29
What are Header and Trailer Nodes?
A Header Node is a node at the beginning of a list that contains a key value smaller than any possible key. A Trailer Node is a node at the end of a list that contains a key larger than any possible key. Both header and trailer are placeholding nodes used to simplify list processing: we never have to handle special cases when inserting/deleting the first/end node.
30
A Sorted list Stored in an Array of Nodes
31
An Array with Linked List of Values and Free Space
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.