49 lines
1.2 KiB
Markdown
49 lines
1.2 KiB
Markdown
## 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 parentheses
|
|
- `facotrial: 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`
|
|
- Vectors
|
|
- Uses: integer and element
|
|
- Operations:
|
|
- `modify: vector x integer x element -> vector`
|
|
- `nth: vector x integer -> element`
|
|
- `lowerlimit: vector -> integer`
|
|
- `upperlimit: vector -> integer`
|
|
- Use
|
|
- `nth(v, i+2)`
|
|
- |