update cours
This commit is contained in:
parent
cd1b19fd4c
commit
8c76a391be
4 changed files with 212 additions and 2 deletions
|
@ -141,10 +141,10 @@ def tri_pairs(f):
|
||||||
debut = debut_file(f)
|
debut = debut_file(f)
|
||||||
if debut % 2 == 0:
|
if debut % 2 == 0:
|
||||||
ajouter_fin_file(f_pairs, debut)
|
ajouter_fin_file(f_pairs, debut)
|
||||||
retirer_debut_file(f)
|
|
||||||
else:
|
else:
|
||||||
ajouter_fin_file(f,_impairs debut)
|
ajouter_fin_file(f,_impairs debut)
|
||||||
retirer_debut_file(f)
|
|
||||||
|
retirer_debut_file(f)
|
||||||
|
|
||||||
while !file_vide(f_impairs):
|
while !file_vide(f_impairs):
|
||||||
ajouter_fin_file(f_pairs, debut_file(f_impairs))
|
ajouter_fin_file(f_pairs, debut_file(f_impairs))
|
||||||
|
|
16
algo_avancee/miroir.py
Normal file
16
algo_avancee/miroir.py
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
def miroir():
|
||||||
|
pile = creer_pile()
|
||||||
|
car = input("Saisir un caractère : ")
|
||||||
|
while car <= 'z' and car >= 'a' or car <= 'Z' and car >= 'A':
|
||||||
|
empile(pile, car)
|
||||||
|
car = input("Saisir un caractère ")
|
||||||
|
|
||||||
|
while not pile_vide(pile):
|
||||||
|
print(sommet(pile), end="")
|
||||||
|
depile(pile)
|
||||||
|
print()
|
||||||
|
|
||||||
|
def separate_car():
|
||||||
|
chaine = input("Saisir une chaine : ")
|
||||||
|
for car in chaine:
|
||||||
|
print(car)
|
103
algo_avancee/piles.html
Normal file
103
algo_avancee/piles.html
Normal file
File diff suppressed because one or more lines are too long
91
algo_avancee/piles.md
Normal file
91
algo_avancee/piles.md
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
# Algo avancée - Listes
|
||||||
|
|
||||||
|
[TOC]
|
||||||
|
|
||||||
|
## Problématique
|
||||||
|
Les tableaux et les listes sont des structures basiques et ne permettent pas la résolution de certains problèmes.
|
||||||
|
|
||||||
|
## Les piles
|
||||||
|
Les piles sont comme une pile d'assiettes.
|
||||||
|
On dispose de fonctions permettant les opérations sur les piles :
|
||||||
|
|
||||||
|
```python
|
||||||
|
p = creer_pile()
|
||||||
|
empiler(p, e)
|
||||||
|
depiler(p)
|
||||||
|
elt = sommet(p)
|
||||||
|
vide = pile_vide(p)
|
||||||
|
pleine = pile_pleine(p)
|
||||||
|
```
|
||||||
|
|
||||||
|
On peut modéliser les piles de différentes manières
|
||||||
|
|
||||||
|
### Modélisation liste
|
||||||
|
On peut voir les piles comme des listes :
|
||||||
|
La tête s'appelle maintenant sommet, on empile en ajoutant un élément avant la tête, on dépile en enlevant le sommet et en le déplaçant.
|
||||||
|
La pile ici ne sera jamais pleine.
|
||||||
|
|
||||||
|
```python
|
||||||
|
def creer_pile():
|
||||||
|
p = Pile(sommet=None)
|
||||||
|
return p
|
||||||
|
|
||||||
|
|
||||||
|
def pile_vide(p):
|
||||||
|
return p.sommet == None
|
||||||
|
|
||||||
|
|
||||||
|
def empile(p, e):
|
||||||
|
ptr = new_maillon()
|
||||||
|
ptr.suivant = p.sommet
|
||||||
|
ptr.valeur = e
|
||||||
|
p.sommet = ptr
|
||||||
|
```
|
||||||
|
|
||||||
|
### Modélisation tableau
|
||||||
|
Renvoi au cours d'algo.
|
||||||
|
|
||||||
|
## Problèmes
|
||||||
|
### Bien parenthésé ?
|
||||||
|
On cherche à déterminer si une expression est bien parenthésée ou non. On va utiliser les piles pour résoudre ce problème :
|
||||||
|
|
||||||
|
```python
|
||||||
|
def check_parentheses(expression):
|
||||||
|
pile = creer_pile()
|
||||||
|
for car in expression:
|
||||||
|
if car == '(' or car == '[':
|
||||||
|
empile(pile, car)
|
||||||
|
elif car == ')':
|
||||||
|
if pile_vide(pile) or sommet(pile) != '(':
|
||||||
|
return False
|
||||||
|
depile(pile)
|
||||||
|
elif car == ']':
|
||||||
|
if pile_vide(pile) or sommet(pile) != '[]':
|
||||||
|
return False
|
||||||
|
depile(pile)
|
||||||
|
i += 1
|
||||||
|
return pile_vide(pile)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Fonction miroir
|
||||||
|
```python
|
||||||
|
def miroir():
|
||||||
|
pile = creer_pile()
|
||||||
|
car = input("Saisir un caractère ")
|
||||||
|
while car <= 'z' and car >= 'a' or car <= 'Z' and car >= 'A':
|
||||||
|
empile(pile, car)
|
||||||
|
car = input("Saisir un caractère ")
|
||||||
|
|
||||||
|
while not pile_vide(pile):
|
||||||
|
print(sommet(pile), end="")
|
||||||
|
depile(pile)
|
||||||
|
print()
|
||||||
|
```
|
||||||
|
|
||||||
|
### Fonction qui sert à rien
|
||||||
|
```python
|
||||||
|
def separate_car():
|
||||||
|
chaine = input("Saisir une chaine : ")
|
||||||
|
for car in chaine:
|
||||||
|
print(car)
|
||||||
|
```
|
Loading…
Reference in a new issue