TP List chainée

This commit is contained in:
2024-04-03 11:02:12 +02:00
parent 6a41a75ff2
commit c445868af4
3 changed files with 120 additions and 0 deletions

BIN
DS/marquet.zip Normal file

Binary file not shown.

View 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

View 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()