def sort_queue(data: Queue) -> Queue: # TODO: Retourner la séquence triée sortedQueue = Queue() sortedQueue.put_many( sorted([data.get() for el in range(len(data))]) ) # Même chose que pour pile, mais data.get prend les éléments à l'envers return sortedQueue
def main() -> None: print("On inverse des données...") print(f"Résultat: {reverse_data()}") n = 4 lifo = Stack() lifo.put_many([i for i in range(20)]) print( f"On retire l'élément à la position {n} de la pile et on obtient: {delete_nth_from_stack(lifo, n)}" ) n = 6 fifo = Queue() fifo.put_many([i for i in range(20)]) print( f"On retire l'élément à la position {n} de la file et on obtient: {delete_nth_from_queue(fifo, n)}" ) lifo = Stack() lifo.put_many([randint(0, 1000) for _ in range(20)]) print(f"On ordonne une file: {sort_stack(lifo)}") fifo = Queue() fifo.put_many([randint(0, 1000) for _ in range(20)]) print(f"On ordonne une file: {sort_queue(fifo)}") sequence = "te!eYy.E6e/T" print( f"Le résulat de la manipulation de la séquence: {string_and_structs(sequence)}" )
def sort_queue(data: Queue) -> Queue: # TODO: Retourner la séquence triée temp = [data.get() for _ in range(len(data))] temp.sort() data.put_many(temp) return data
def sort_queue(data: Queue) -> Queue: # TODO: Retourner la séquence triée x = Queue() values = [] for i in range(len(data)): values.append(data.get()) x.put_many(sorted(values)) return x
def test_sort_queue(self): values = [randint(0, 1000) for _ in range(20)] fifo = Queue() fifo.put_many(values) output = exercice.sort_stack(fifo) answer = Queue() answer.put_many(sorted(values)) self.assertEqual(output, answer, 'Mauvaise reponse')
def test_delete_queue(self): fifo = Queue() fifo.put_many(list(range(20))) answer = Queue() answer.put_many(list(range(1, 20))) output = exercice.delete_nth_from_queue(fifo, 0) self.assertEqual(output, answer, 'Mauvaise reponse')
def delete_nth_from_queue(data: Queue, position: int) -> Queue: # TODO: Supprimer le énième (position) élément de data et retourner la nouvelle structure de données. size_queue = len(data) temp = [data.get() for _ in range(position)] data.put_many(temp) data.get() temp = [ data.get() for _ in range(size_queue - position - 1) ] # -1 car une valeur ne doit pas être mise dans la liste temporaire data.put_many(temp) return data
def reverse_data(data: list = None): # TODO: Demander 10 valeurs à l'utilisateur, # les stocker dans une structure de données, # et les retourner en ordre inverse, sans utiliser de liste. q = Queue() q.put('a') q.put_many('blabalbal') elem = q.get() s = Stack s.put(1) elem2 = s.get() if data is None: pass # Demander les valeurs ici reversed_data = None # Stocker le résultat ici return reversed_data
def sort_queue(data: Queue) -> Queue: # TODO: Retourner la séquence triée data_list = [data.get() for _ in range(len(data))] data.put_many(sorted(data_list)) return data