def sort_stack(data: Stack) -> Stack:
    # TODO: Retourner la séquence
    values = []
    for _ in range(len(data)):
        values.append(data.get())
    data.put_many(sorted(values))
    return data
def sort_stack(data: Stack) -> Stack:
    # TODO: Retourner la séquence triée
    sortedStack = Stack()
    sortedStack.put_many(
        sorted([data.get() for el in range(len(data))])
    )  # Ordonner une liste faite par comprehension, et l'ajouter a sortedStack
    return sortedStack
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_stack(data: Stack) -> Stack:
    # 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_stack(data: Stack) -> Stack:
    #STACK = LAST IN FIRST OUT
    sorted_stack = Stack()
    # [1, 3, 2, 4, 8, 5]
    #5,8,4,2,3,1

    sorted_stack.put_many(sorted([data.get() for _ in range(len(data))]))

    return sorted_stack
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)}"
    )
Esempio n. 7
0
def sort_stack(data: Stack) -> Stack:
    # TODO: Retourner la séquence triée
    x = Stack()
    values = []
    for i in range(len(data)):
        values.append(data.get())

    x.put_many(sorted(values))

    return x
Esempio n. 8
0
    def test_sort_stack(self):
        values = [randint(0, 1000) for _ in range(20)]
        lifo = Stack()
        lifo.put_many(values)

        output = exercice.sort_stack(lifo)
        answer = Stack()
        answer.put_many(sorted(values))

        self.assertEqual(output, answer, 'Mauvaise reponse')
Esempio n. 9
0
    def test_delete_stack(self):
        lifo = Stack()
        lifo.put_many(list(range(20)))

        answer = Stack()
        answer.put_many(list(range(19)))

        output = exercice.delete_nth_from_stack(lifo, len(lifo) - 1)

        self.assertEqual(output, answer, 'Mauvaise reponse')
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.

    if data is None:
        data = [input("Entrez une valeur: ") for _ in range(10)]
    # Stocker le résultat ici
    s = Stack()
    s.put_many(data)

    return [s.get() for _ in range(len(s))]
def delete_nth_from_stack(data: Stack, position: int) -> Stack:
    # TODO: Supprimer le énième (position) élément de data et retourner la nouvelle structure de données.

    temp = [
        data.get() for _ in range(len(data) - position - 1)
    ]  # -1 car une valeur ne doit pas être mise dans la liste temporaire
    data.get()

    temp.reverse()
    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.
    stack, MAX = Stack(), 10

    if data is None:
        stack.put_many(
            input(f"Entrez la valuer {i} ici -> ") for i in range(MAX))

    reversed_data = [stack.get() for _ in range(MAX)]

    return reversed_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.

    if data is None:  # Demander les valeurs ici
        data = [input("Entrez une valeur : ") for _ in range(10)]

    reversed_data = Stack()
    reversed_data.put_many(data)  # Stocker le résultat ici

    return [reversed_data.get() for _ in range(10)
            ]  # Poper les valeurs pour les avoir dans le sens inverse
def delete_nth_from_stack(data: Stack, position: int) -> Stack:
    # TODO: Supprimer le énième (position) élément de data et retourner la nouvelle structure de données.
    for i in range(len(data)):
        if i == (len(data) - position):
            print(
                f"L'element a supprimer est {data.get()} a la position {position}."
            )
            data.get()
        else:
            data.put(data.get())

    new_stack = Stack()
    new_stack.put_many(data.get() for _ in range(len(data)))

    return new_stack
Esempio n. 15
0
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.

    if data is None:
        data = [input("entrez une donnee:") for _ in range(10)]

    s = Stack()
    s.put_many(
        data
    )  #on met la liste dans un stack = pille et on fait des pop (get)dessus pour le mettre en ordre de last in first out dans une liste
    # ensuite une fois que on as accès à tout les valeurs de notre pille on peut agir dessus
    for d in data:
        s.put(d)

    return [s.get() for _ in range(len(s))]
Esempio n. 16
0
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.

    reversed_data = Stack()

    if data is None:
        data = [input("Veuillez entre une valeur") for _ in range(10)]

    reversed_data.put_many(data)

    liste = []
    for _ in range(len(reversed_data)):
        liste.append(reversed_data.get())

    #ou simplement return [reversed_data.get() for _ in range(len(reversed_data))]

    return liste
def delete_nth_from_stack(data: Stack, position: int) -> Stack:
    # TODO: Supprimer le énième (position) élément de data et retourner la nouvelle structure de données.
    s = Stack()
    for i in range(data):
        if i == len(data) - position:
            data.get()
        else:
            s.put(data.get())

    new_stack = Stack()
    return new_stack.put_many([s.get() for _ in range(len(s))])
def sort_stack(data: Stack) -> Stack:
    # TODO: Retourner la séquence triée
    data_list = [data.get() for _ in range(len(data))]
    data.put_many(sorted(data_list))
    return data