Comment rédiger un algorithme qui double la pile afin de s'adapter aux nouveaux membres où la poussée est en constante époque dans le pire des cas?

cs.stackexchange https://cs.stackexchange.com/questions/76628

Question

On nous donne l'algorithme qui utilise la pile afin de stocker les données (la pile est implémentée via un tableau). Lorsque la pile est pleine, l'algorithme fait ce qui suit:

  1. Crée un nouveau tableau double de la taille de l'original.
  2. Copie tous les éléments de l'ancien tableau vers le nouveau tableau, en préservant la commande.

Ajustez l'algorithme afin que l'insertion de nouveaux éléments soit en constante époque dans le pire des cas.

La limitation ici est que nous devons utiliser des tableaux comme implémentation de pile.

Le pire des cas est lorsque, par exemple, l'ancienne pile de taille $ n $ est pleine et que nous devons maintenant insérer un nouvel élément. Nous créons donc une nouvelle pile $ S_2 $ de taille $ $ $ $ et nous voulons insérer le nouvel élément sur $ s_2 [n + 1] $.

Je suis coincé avec l'exigence de temps constant, j'apprécierais les indices de la bonne direction.

NB: Je suis conscient que le titre est un peu général, je ne pourrais penser à rien de plus spécifique, si vous savez dans quelle catégorie d'algorithmes il tombe, faites-le moi savoir et je modifierai le titre.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à cs.stackexchange
scroll top