1.6 KiB
1.6 KiB
Outline
- Abstract Algebraic Data types
- Elementary types
- List
- Stack
- Queue
- Set
- Searching algorithms
- Tree
- Binary
- General
- BST
- AVL
- A234
Abstract Algebraic Data Types
Signature and hierarchy
- a signature is composed by
- a type (integer, stack, queue, graph)
- an operations (name: profile)
- Exemple:
insert: list x integer x element -> list
insert(l, i, e)
- return a result of type
list
- We can use the
_
to pass an argument without parenthesesfacotrial: interger -> integer
=_!: interger -> integer
power: integer x integer -> integer
=_^_: integer x integer -> integer
- Operations
0: -> integer
false: -> boolean
pi: -> real
- Types
- Boolean
- Opération:
false: -> boolean
true: -> boolean
not_: boolean -> boolean
_and_: boolean x boolean -> boolean
_or_: boolean x boolean -> boolean
- Opération:
- Vectors (defined type)
- Uses: integer and element (predefined types)
- Operations:
modify: vector x integer x element -> vector
(internal operation)nth: vector x integer -> element
(observers)lowerlimit: vector -> integer
(observers)upperlimit: vector -> integer
(observers)
- Use
nth(v, i+2)
- Boolean
Every time that an operation return a defined type, is a internal operation. An internal operation will really modify the data
An observer is when there is AT LEAST 1 defined type vector and who return a predefined type. The observer just look into the data and return the selected value, but he don't change any values.