List Part1 Handout
List Part1 Handout
April 6, 2020
C ONCEPTS L IST ADT I MPLEMENTATION
O UTLINE
C ONCEPTS
L IST ADT
I MPLEMENTATION
Array-based
Linked
C ONCEPTS L IST ADT I MPLEMENTATION
I S I T A L IST ?
C ONCEPTS L IST ADT I MPLEMENTATION
I S I T A L IST ?
C ONCEPTS L IST ADT I MPLEMENTATION
I S I T A L IST ?
C ONCEPTS L IST ADT I MPLEMENTATION
I S I T A L IST ?
C ONCEPTS L IST ADT I MPLEMENTATION
I S I T A L IST ?
C ONCEPTS L IST ADT I MPLEMENTATION
I S I T A L IST ?
C ONCEPTS L IST ADT I MPLEMENTATION
I S I T A L IST ?
C ONCEPTS L IST ADT I MPLEMENTATION
I S I T A L IST ?
C ONCEPTS L IST ADT I MPLEMENTATION
I S I T A L IST ?
C ONCEPTS L IST ADT I MPLEMENTATION
I S I T A L IST ?
C ONCEPTS L IST ADT I MPLEMENTATION
I S I T A L IST ?
C ONCEPTS L IST ADT I MPLEMENTATION
W HAT IS A L IST ?
<3, 4, 2, 6, 1 >
C ONCEPTS L IST ADT I MPLEMENTATION
L IST ADT
public:
List() {}
virtual ˜List() {}
L IST ADT
virtual T remove() = 0;
};
C ONCEPTS L IST ADT I MPLEMENTATION
E XAMPLE
E XAMPLE
I MPLEMENTATION
I Array-based List
3 4 2 6 1
0 1 2 3 4 5 6 7 8
I Linked List
3 4 2 6 1
C ONCEPTS L IST ADT I MPLEMENTATION
listSize
3 4 2 6 1
0 1 2 3 4 5 6 7 8
MAXSIZE
I How to implement a cursor?
I How to move the cursor?
I How to get the value of a list at the cursor position?
I What is the complexity of these actions?
C ONCEPTS L IST ADT I MPLEMENTATION
I insert(<3, 4, | 2, 6, 1 >, 9) 3 4 2 6 1
I cursor = 2 0 1 2 3 4 5 6 7 8
listSize = 5
I insert(<3, 4, | 2, 6, 1 >, 9) 3 4 2 6 1
I cursor = 2 0 1 2 3 4 5 6 7 8
I insert(<3, 4, | 2, 6, 1 >, 9) 3 4 2 6 1
I cursor = 2 0 1 2 3 4 5 6 7 8
I insert(<3, 4, | 2, 6, 1 >, 9) 3 4 2 6 1 1
I cursor = 2 0 1 2 3 4 5 6 7 8
I insert(<3, 4, | 2, 6, 1 >, 9) 3 4 2 6 1 1
I cursor = 2 0 1 2 3 4 5 6 7 8
I insert(<3, 4, | 2, 6, 1 >, 9) 3 4 2 6 6 1
I cursor = 2 0 1 2 3 4 5 6 7 8
I insert(<3, 4, | 2, 6, 1 >, 9) 3 4 2 6 6 1
I cursor = 2 0 1 2 3 4 5 6 7 8
I insert(<3, 4, | 2, 6, 1 >, 9) 3 4 2 2 6 1
I cursor = 2 0 1 2 3 4 5 6 7 8
I insert(<3, 4, | 2, 6, 1 >, 9) 3 4 2 2 6 1
I cursor = 2 0 1 2 3 4 5 6 7 8
I insert(<3, 4, | 2, 6, 1 >, 9) 3 4 9 2 6 1
I cursor = 2 0 1 2 3 4 5 6 7 8
listSize = 6
I insert(<3, 4, | 2, 6, 1 >, 9) 3 4 9 2 6 1
I cursor = 2 0 1 2 3 4 5 6 7 8
I NSERT M ETHOD
L INKED L IST
<3, 4, | 2, 6, 1 >
3 4 2 6 1
C ONCEPTS L IST ADT I MPLEMENTATION
E XAMPLE
z y x
4 5 3
L INKED L IST
<3, 4, | 2, 6, 1 >
3 4 2 6 1
C ONCEPTS L IST ADT I MPLEMENTATION
E XAMPLE
3 4 2 6 1
3 4 2 6 1
3 4 2 6 1
3 4 2 6 1
I NSERTION ALGORITHM
3 4 6 1
C ONCEPTS L IST ADT I MPLEMENTATION
3 4 2 6 1
C ONCEPTS L IST ADT I MPLEMENTATION
3 4 2 6 1
C ONCEPTS L IST ADT I MPLEMENTATION
3 4 2 6 1
C ONCEPTS L IST ADT I MPLEMENTATION
3 4 6 1