epicours/Algo/CM/CM du 27 septembre.md

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)`
-