8. lijsten
3
6
-1
7
6
lijsten linear lists ADT vs. implementatie
•list
•double ended queue “deque”
•stapel stack LIFO
•rij queue FIFO data type elementen hier niet belangrijk (bij sommige adt’s wél)
9. lijsten
3
6
-1
7
6
ADT linear list
first
front/head
last
back/tail
position
•create
•is empty
•insert
at/from front, back, position
(?) before/after
•delete
at … (?) new position
•value at position
•search value
return position (?) not found
‘abstract’
data elementen
lijst
data types
•element
•position
•list
•boolean
10. lijsten
3
6
-1
7
6
ADT double ended queue
first
front/head
last
back/tail
position
•create
•is empty
•insert
•delete
•value at front, back (?) when empty
‘abstract’
data elementen
lijst
data types
•element
•position
•list
•boolean
11. lijsten
ADT double ended queue
operation
common name(s)
Ada
C++
Java
Perl
PHP
Python
Ruby
Javascript
insert element at back
inject, snoc
Append
push_back
offerLast
push
array_push
append
push
push
insert element at front
push, cons
Prepend
push_front
offerFirst
unshift
array_unshift
appendleft
unshift
unshift
remove last element
eject
Delete_Last
pop_back
pollLast
pop
array_pop
pop
pop
pop
remove first element
pop
Delete_First
pop_front
pollFirst
shift
array_shift
popleft
shift
shift
examine last element
Last_Element
back
peekLast
$array[- 1]
end
<obj>[-1]
last
<obj>[<obj>.length - 1]
examine first element
First_Element
front
peekFirst
$array[0]
reset
<obj>[0]
first
<obj>[0]
zegt wie?
http://en.wikipedia.org/wiki/Double-ended_queue#Operations
12. lijsten
3
6
-1
7
6
ADT stack last-in-first-out
top
•create
•is empty
•insert ‘push’
•delete ‘pop’
•value at ‘top’ (?) when empty
data types
•element
•position
•list
•boolean
Drozdek 4.1
13. lijsten
3
6
-1
7
6
ADT queue first-in-first-out
last
back/tail
•create
•is empty
•insert ‘enqueue’
•delete ‘dequeue’
•value at front (*) (?) when empty
data types
•element
•position
•list
•boolean
first
front/head
(*) andere kant makkelijk te implementeren
Drozdek 4.2
14. representaties lijst
representatie/implementatie lege lijst kopiëren, gelijkheidstest ‘diepte’
•array (bv:stack) willekeurige positie langzaam flexibele grootte: vector
•linked enkel(queue) /dubbel verbonden
prev
next
Λ
last
first
17. lijsten
lijsten linear lists ADT vs. implementatie
•list
•double ended queue “deque”
•stapel stack LIFO
•rij queue FIFO
gaan uit van
elementen zonder ‘eigenschappen’
lineaire structuur vergelijk nu met
set
priority queue