mirror of
https://github.com/BreizhHardware/py_A2.git
synced 2026-03-18 21:30:52 +01:00
TP List chainée
This commit is contained in:
BIN
DS/marquet.zip
Normal file
BIN
DS/marquet.zip
Normal file
Binary file not shown.
80
TP Listes Chainées/listechainee.py
Normal file
80
TP Listes Chainées/listechainee.py
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
class Node:
|
||||||
|
def __init__(self, value):
|
||||||
|
self.value = value
|
||||||
|
self.next = None
|
||||||
|
|
||||||
|
|
||||||
|
class ListeChainee:
|
||||||
|
def __init__(self, noeud = None):
|
||||||
|
self.tete = noeud
|
||||||
|
|
||||||
|
def add_first(self, data):
|
||||||
|
new_node = Node(data)
|
||||||
|
new_node.next = self.tete
|
||||||
|
self.tete = new_node
|
||||||
|
|
||||||
|
def add_last(self, data):
|
||||||
|
new_node = Node(data)
|
||||||
|
if self.tete is None:
|
||||||
|
self.tete = new_node
|
||||||
|
return
|
||||||
|
current = self.tete
|
||||||
|
while current.next:
|
||||||
|
current = current.next
|
||||||
|
current.next = new_node
|
||||||
|
|
||||||
|
def printLinkedList(self):
|
||||||
|
current = self.tete
|
||||||
|
while current:
|
||||||
|
print(current.value, end=" -> ")
|
||||||
|
current = current.next
|
||||||
|
print("None")
|
||||||
|
|
||||||
|
def find(self, e):
|
||||||
|
current = self.tete
|
||||||
|
while current:
|
||||||
|
if current.value == e:
|
||||||
|
return True
|
||||||
|
current = current.next
|
||||||
|
return False
|
||||||
|
|
||||||
|
def remove(self, data):
|
||||||
|
current = self.tete
|
||||||
|
if current.value == data:
|
||||||
|
self.tete = current.next
|
||||||
|
return
|
||||||
|
while current.next:
|
||||||
|
if current.next.value == data:
|
||||||
|
current.next = current.next.next
|
||||||
|
return
|
||||||
|
current = current.next
|
||||||
|
|
||||||
|
def isEmpy(self):
|
||||||
|
return self.tete is None
|
||||||
|
|
||||||
|
def size(self):
|
||||||
|
current = self.tete
|
||||||
|
count = 0
|
||||||
|
while current:
|
||||||
|
count += 1
|
||||||
|
current = current.next
|
||||||
|
return count
|
||||||
|
|
||||||
|
def number_of_occurrences(self, e):
|
||||||
|
current = self.tete
|
||||||
|
count = 0
|
||||||
|
while current:
|
||||||
|
if current.value == e:
|
||||||
|
count += 1
|
||||||
|
current = current.next
|
||||||
|
return count
|
||||||
|
|
||||||
|
def empty(self):
|
||||||
|
self.tete = None
|
||||||
|
|
||||||
|
def __add__(self, other):
|
||||||
|
current = self.tete
|
||||||
|
while current.next:
|
||||||
|
current = current.next
|
||||||
|
current.next = other.tete
|
||||||
|
return self
|
||||||
40
TP Listes Chainées/main.py
Normal file
40
TP Listes Chainées/main.py
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
from listechainee import ListeChainee
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
test_listechainee()
|
||||||
|
|
||||||
|
|
||||||
|
def test_listechainee():
|
||||||
|
LC = ListeChainee()
|
||||||
|
LC.add_first(1)
|
||||||
|
LC.add_first(2)
|
||||||
|
LC.add_first(3)
|
||||||
|
LC.add_last(35)
|
||||||
|
LC.printLinkedList()
|
||||||
|
LC.remove(2)
|
||||||
|
LC.printLinkedList()
|
||||||
|
print(LC.find(35))
|
||||||
|
print(LC.size())
|
||||||
|
print(LC.isEmpy())
|
||||||
|
print(LC.find(2))
|
||||||
|
LC.empty()
|
||||||
|
print(LC.isEmpy())
|
||||||
|
LC.printLinkedList()
|
||||||
|
LC.add_first(1)
|
||||||
|
LC.add_first(2)
|
||||||
|
LC.add_first(2)
|
||||||
|
LC.add_first(35)
|
||||||
|
LC.add_last(44)
|
||||||
|
LC.printLinkedList()
|
||||||
|
print(LC.number_of_occurrences(2))
|
||||||
|
LC2 = ListeChainee()
|
||||||
|
LC2.add_first(84)
|
||||||
|
LC2.add_first(8463)
|
||||||
|
LC2.printLinkedList()
|
||||||
|
LC3 = LC + LC2
|
||||||
|
LC3.printLinkedList()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
Reference in New Issue
Block a user