Bonsoir Continuez à recevoir divers conseils de chacun Deux semaines sont sur le point de passer.
Merci beaucoup. m (_ _) m
Tout d'abord, préparez une pile, modifiez-la et mettez-la dans la file d'attente Je vais adopter une approche.
stack.py
class Stack:
class full(Exception):
pass
def __init__(self,size):
#Corps de pile
self.str = []
#Spécifiez le nombre de données pouvant être empilées
self.size = size
def push(self,value):
#Corps de pile>Traitement des exceptions pour le nombre de données spécifié
if len(self.str) >= self.size:
raise Stack.full
#Poussez s'il n'y a pas de problème
self.str.append(value)
def pop(self):
print(self.str.pop())
def view(self):
print(self.str)
x = int(input("stack size is "))
test = Stack(x)
while True:
num = int(input("1.push 2.pop: "))
if num == 1:
x = int(input("push data is "))
try:#Traitement normal
test.push(x)
test.view()
except:#Gestion des exceptions
print("Full!")
elif num == 2:
try:#Traitement normal
test.pop()
test.view()
except:#Gestion des exceptions
print("Empty!")
else:
break
Non, c'est une description à laquelle je ne pouvais pas penser il y a deux semaines (; ´ ・ ω ・) Maintenant, comment l'amenez-vous dans la file d'attente d'ici? Quelle était la différence entre une pile et une file d'attente en premier lieu? .. Fondamentalement, le mouvement de la pop est différent. Comme le montre la figure, dans le cas d'une file d'attente, les premières données enregistrées sont retirées. Si vous poussez / pop au hasard, le contenu sera foiré, donc Je ne sais pas où se trouvent les premières données.
En guise de contre-mesure, il y a l'idée de tampon en anneau. La file d'attente est réalisée en gérant où est le premier. .. .. J'utilise python N'est-ce pas facile? ?? ??
Alors, tout d'abord, passons en revue la nature de la pop.
test.py
num = [3,2,1]
for i in range(3):
print(f"num[{i}] = {num[i]}")
##Résultat d'exécution##
#num[0] = 3#
#num[1] = 2#
#num[2] = 1#
############
Mettons pop dedans. Je veux faire la queue, donc je l'ai réglé sur pop (0) Récupérons les premières données.
test.py
num = [3,2,1]
num.pop(0)
for i in range(2):
print(f"num[{i}] = {num[i]}")
##Résultat d'exécution##
#num[0] = 2#
#num[1] = 1#
############
[Mur] * ゚) Hmm? Pop le premier numéro [0], c'est-à-dire, retirez-le, Suite à la suppression, les éléments restants sont justifiés à gauche.
C'est vrai, les éléments qui restent après la suppression du début sont Il sera également réorganisé à partir de 0. Et si vous le faites vous-même, vous n'avez pas besoin d'un tampon en anneau!?
La file d'attente est fondamentalement la même que la pile, récupérant des données, Vous n'avez besoin d'écrire qu'une seule fois par adresse. Par conséquent, pop () défini dans la pile ci-dessus, la description doit toujours être extraite de la fin Si vous changez en pop (0), la description qui est toujours retirée du début, ce sera une file d'attente.
Queue??.py
class Stack:
class full(Exception):
pass
def __init__(self,size):
self.str = []
self.size = size
def push(self,value):
if len(self.str) >= self.size:
raise Stack.full
self.str.append(value)
def pop(self):
print(self.str.pop(0)) #Changer seulement ici!!Changer avant) pop()Après le changement) pop(0)
def view(self):
print(self.str)
x = int(input("stack size is "))
test = Stack(x)
while True:
num = int(input("1.push 2.pop: "))
if num == 1:
x = int(input("push data is "))
try:
test.push(x)
test.view()
except:
print("Full!")
elif num == 2:
try:
test.pop()
test.view()
except:
print("Empty!")
else:
break
Voici les résultats de l'exécution.
push data is 4 #Pousser 4
[1, 2, 3, 4] #Contenu de la mémoire après push
1.push 2.pop: 2#2.Sélectionnez pop
1 #str[0]1 stocké en pop
[2, 3, 4] #Contenu de la mémoire après le pop
1.push 2.pop: 2#2.Sélectionnez pop
2 #str[0]1 stocké en pop
[3, 4] #Contenu de la mémoire après le pop
1.push 2.pop: 2
3
[4]
1.push 2.pop: 2
4
[]
1.push 2.pop: 2
Empty!
Avec ce genre de sensation, j'ai pu réaliser le signal avec facilité. Hmmm, mais créez un tampon de lien correctement et expliquez Je pense que c'est mieux pour moi de le mettre. Très bien, faisons-le! !! Un jour. ..
Recommended Posts