/
4.  LinkedList Yan Shi CS/SE 2630 Lecture Notes 4.  LinkedList Yan Shi CS/SE 2630 Lecture Notes

4. LinkedList Yan Shi CS/SE 2630 Lecture Notes - PowerPoint Presentation

luanne-stotts
luanne-stotts . @luanne-stotts
Follow
371 views
Uploaded On 2018-03-19

4. LinkedList Yan Shi CS/SE 2630 Lecture Notes - PPT Presentation

Linked List Unsorted List Sorted List Double linked list Circular linked list Sorted and Unsorted Lists UNSORTED LIST Elements are placed into the list in no particular order ID: 656874

location list listdata length list location length listdata data private currentpos sorted linked node item element predloc proper elements

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "4. LinkedList Yan Shi CS/SE 2630 Lectur..." is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

4. LinkedList

Yan Shi

CS/SE 2630 Lecture NotesSlide2

Linked List

Unsorted List

Sorted List

Double linked list

Circular linked listSlide3

Sorted and Unsorted Lists

UNSORTED LIST

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) .Slide4

ADT Unsorted List Operations

Transformers

MakeEmpty

PutItem DeleteItemObservers IsFullGetLengthGetItem Iterators ResetList GetNextItem

change state

observe state

process all Slide5

class

UnsortedType

<char>

MakeEmpty

~UnsortedType

DeleteItem

.

.

.

PutItem

UnsortedType

GetItem

GetNextItem

X

C

L

Private data:

length

3

listData

currentPos

?Slide6

Inserting

B

into an Unsorted List

X

C

L

Private data:

length

3

listData

currentPos

?Slide7

location = new

NodeType

;

Private data:

length

3

listData

currentPos ?

item

location

B

X

C

L

’Slide8

location->info = item ;

Private data:

length

3

listData

currentPos

?

item

location

B

B

X

C

L

’Slide9

location->next = listData ;

Private data:

length

3

listData

currentPos

?

item

location

B

B

X

C

L

’Slide10

listData = location ;

Private data:

length

3

listData

currentPos

?

item

location

B

B

X

C

L

’Slide11

length++ ;

Private data:

length

4

listData

currentPos

?

item

location

B

B

X

C

L

’Slide12

Sorted Type Class Interface Diagram

SortedType

class

IsFull

GetLength

ResetList

DeleteItem

InsertItem

MakeEmpty

GetItem

Private data:

length

info

[ 0 ]

[ 1 ]

[ 2 ]

[MAX_ITEMS-1]

currentPos

GetNextItemSlide13

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.Slide14

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.Slide15

class

SortedType

<char>

MakeEmpty

~SortedType

DeleteItem

.

.

.

InsertItem

SortedType

RetrieveItem

GetNextItem

C

L

X

Private data:

length

3

listData

currentPos

?Slide16

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.Slide17

The Inchworm EffectSlide18

Inserting

S

into a Sorted List

C

L

X

Private data:

length

3

listData

currentPos

?

predLoc location

moreToSearch Slide19

Finding proper position for

S

C

L

X

Private data:

length

3

listData

currentPos

?

predLoc location

NULL

moreToSearch trueSlide20

Finding proper position for

S

C

L

X

Private data:

length

3

listData

currentPos ?

predLoc location

moreToSearch trueSlide21

Finding Proper Position for

S

C

L

X

Private data:

length

3

listData

currentPos

?

predLoc location

moreToSearch

falseSlide22

Inserting

S

into Proper Position

C

L

X

Private data:

length

4

listData

currentPos

predLoc location

moreToSearch false

S

’Slide23

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. Slide24

External Pointer to the Last NodeSlide25

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?Slide26

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.

Slide27

Linking the New Node into the ListSlide28

Deleting from a Doubly Linked ListSlide29

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.Slide30

A Sorted list Stored in an Array of NodesSlide31

An Array with Linked List of Values and Free Space