Comprendre l'implémentation des listes chaînées en Python

Image de Unsplash

Les données ne sont pas enregistrées dans des emplacements de mémoire adjacents tels que des tableaux. Et chaque élément lié est appelé un nœud et connecté par les pointeurs. Head est le nœud initial dans la liste des liens. Dynamique est la taille de la liste associée. Ainsi, nous pouvons avoir le nombre de nœuds que nous voulons sans le stockage de l'appareil. Deux types de listes sont liés. Regardons la leçon approfondie une par une.

Liste à chaînage simple

Une liste chaînée a un seul pointeur dans la liste chaînée connecté au nœud suivant. Pour chaque nœud de la liste chaînée, nous devons stocker les données et le pointeur. Null car l'indicateur suivant pour la fin de la liste chaînée contient le nœud final de la liste chaînée.

Tout d'abord, le nœud de liste chaînée sera créé. Nous pouvons facilement construire le nœud avec la classe Python. La classe comprend des données et le pointeur de nœud suivant.

class Node:
	def __init__(self, data):
		self.data = data
		self.next = None

class LinkedList:
	def __init__(self):
		self.head = None

class LinkedList:
	def insert(self, new_node):
		if self.head:
			last_node = self.head
			while last_node != None:
				last_node = last_node.next
			last_node.next = new_node
		else:
			self.head = new_node

class LinkedList:
	def display(self):
		temp_node = self.head
		while temp_node != None:
			print(temp_node.data, end='->')
			temp_node = temp_node.next
		print('Null')

class Node:
	def __init__(self, data):
		self.data = data
		self.next = None
class LinkedList:
	def __init__(self):
		self.head = None
	def insert(self, new_node):
		if self.head:
			last_node = self.head
			while last_node.next != None:
				last_node = last_node.next
			last_node.next = new_node
		else:
			self.head = new_node
	def display(self):
		temp_node = self.head
		while temp_node != None:
			print(temp_node.data, end='->')
			temp_node = temp_node.next
		print('Null')
if __name__ == '__main__':
	linked_list = LinkedList()
	linked_list.insert(Node(1))
	linked_list.insert(Node(2))
	linked_list.insert(Node(3))
	linked_list.insert(Node(4))
	linked_list.insert(Node(5))
	linked_list.insert(Node(6))
	linked_list.insert(Node(7))
	linked_list.display()

1->2->3->4->5->6->7->Null

Liste doublement chaînée

Une liste doublement chaînée a deux indicateurs dans la liste chaînée qui sont connectés au nœud précédent. Pour chaque nœud de la liste chaînée, nous devons stocker des données et deux points. Le nœud initial est zéro et le point suivant dans le dernier nœud est zéro pour montrer la fin de la liste chaînée des deux côtés.

La liste à double chaînage contient également des méthodes comparables pour implémenter la liste à chaînage unique. Encore une fois, il sera fastidieux pour vous d'expliquer les mêmes choses. Parcourez le code à chaque étape et vous le comprendrez rapidement.

Crée un nœud contenant le pointeur de nœud précédent, des données et un pointeur de nœud suivant pour la liste à double chaînage.

class Node:
	def __init__(self, data):
		self.prev = None
		self.data = data
		self.next = None

class LinkedList:
	def __init__(self):
		self.head = None

class LinkedList:
	def insert(self, new_node):
		if self.head:
			last_node = self.head
			while last_node.next != None:
				last_node = last_node.next
			new_node.prev = last_node
			last_node.next = new_node

class LinkedList:
	def display(self):
		print("Normal Order: ", end='')
		temp_node = self.head
		while temp_node != None:
			print(temp_node.data, end=' ')
			temp_node = temp_node.next
		print()
		print("Reverse Order: ", end='')
		last_node = self.head
		while last_node.next != None:
			last_node = last_node.next
		temp_node = last_node
		while temp_node != None:
			print(temp_node.data, end=' ')
			temp_node = temp_node.prev
		print()

Suggested posts

Recherche d'informations sur les noms de domaine

Un extrait de Small, Sharp Software Tools par Brian P. Hogan

Recherche d'informations sur les noms de domaine

Lorsque vous faites une demande à facebook.com, votre ordinateur recherche le nom de domaine pour traduire ce nom de domaine en une adresse IP afin que votre ordinateur puisse établir cette connexion.

Conseils pour passer à la cybersécurité sans formation technique.

Conseils pour passer à la cybersécurité sans formation technique.

En 2022, je suis passé d'un rôle non technique à la cybersécurité. J'ai eu mon premier diplôme en langue allemande, je sais que vous êtes choqué et curieux de savoir comment j'ai pu réussir la transition, eh bien c'est juste arrivé.

Related posts

Réseau TV Twitter

Réseau TV Twitter

Ce qui est vieux est à nouveau nouveau et ce qui était autrefois la chose brillante et scintillante semble maintenant terne. Je ne parle pas du retour des jeans JNCO parmi les enfants cool du centre-ville avec d'autres modes de la fin des années 1990.

L'art est-il toujours apolitique ?

L'art est-il toujours apolitique ?

Hier, nous avons fermé la porte du concours Eurovision de la chanson de cette année avec une grande finale scintillante et chaotique où la chanteuse suédoise Loreen a remporté le trophée, devenant la première femme à gagner deux fois et ramenant la couronne à la Suède 50 ans après qu'ABBA a remporté le concours. avec "Waterloo". Ils sont devenus l'un des plus grands groupes du canon de la musique pop.

"La fosse des Mariannes dévoilée : dévoiler les terrifiantes vérités cachées de l'abîme"

"La fosse des Mariannes dévoilée : dévoiler les terrifiantes vérités cachées de l'abîme"

Introduction :Bienvenue, courageux lecteurs, dans un voyage qui nous emmènera dans les profondeurs les plus sombres de notre planète. Dans ce blog, nous plongeons dans le monde énigmatique de la fosse des Mariannes, découvrant ses secrets cachés et découvrant les vérités effrayantes qui se cachent sous sa surface.

Comment sauver la planète et gagner de l'argent

Comment sauver la planète et gagner de l'argent

Combien de fois avez-vous jeté une bouteille en plastique, un bocal en verre, une canette en aluminium ou un paquet d'énergie verte sans réfléchir à deux fois ? Combien de fois avez-vous souhaité pouvoir obtenir quelque chose en échange de leur recyclage ? Si vous êtes comme la plupart des gens, la réponse est probablement plusieurs fois. Le recyclage est souvent perçu comme un tracas, une corvée ou un devoir qui n'apporte aucun bénéfice immédiat ou tangible.