Bağlantılı listeler için sıralı nesneler diyebiliriz. Bağlantılı listenin her bir öğesine de node(düğüm) denir.
Şimdi bağlantılı bir listeyi nasıl tersine çevirebileceğimize bakalım
Yöntem 1:
class Node:
# node nesnesi için bir Constructor fonksiyonu başlatalım
def __init__(self, data):
self.data = data
self.next = None
class LinkedList:
# head fonksiyonunu yazalım
def __init__(self):
self.head = None
# bağlantılı listeyi ters çevirme fonksiyonu
def reverse(self):
prev = None
current = self.head
while(current is not None):
next = current.next
current.next = prev
prev = current
current = next
self.head = prev
# Başlangıçta yeni bir node ekleme işlemi
def push(self, new_data):
new_node = Node(new_data)
new_node.next = self.head
self.head = new_node
# LinkedList yazdırmak için gerekli fonksiyon
def printList(self):
temp = self.head
while(temp):
print (temp.data,)
temp = temp.next
# Yukarıdaki fonksiyonları test edelim
llist = LinkedList()
llist.push(20)
llist.push(4)
llist.push(15)
llist.push(85)
print ("Orj. Bağlantılı Liste")
llist.printList()
llist.reverse()
print ("\nTers Çevrilmiş Bağlantılı Liste")
llist.printList()
Yöntem 2:
class Node:
# node nesnesi için bir Constructor fonksiyonu başlatalım
def __init__(self, data):
self.data = data
self.next = None
class LinkedList:
# head fonksiyonunu yazalım
def __init__(self):
self.head = None
def reverseUtil(self, curr, prev):
if curr.next is None :
self.head = curr
curr.next = prev
return
# curr.next node u değişkene atayalım
next = curr.next
# node u güncelleyelim
curr.next = prev
self.reverseUtil(next, curr)
# reverseUtil() fonksiyonunu çağıralım
def reverse(self):
if self.head is None:
return
self.reverseUtil(self.head, None)
# Başlangıçta yeni bir node ekleme işlemi
def push(self, new_data):
new_node = Node(new_data)
new_node.next = self.head
self.head = new_node
# LinkedList yazdırmak için gerekli fonksiyon
def printList(self):
temp = self.head
while(temp):
print (temp.data,)
temp = temp.next
# Programımızı çalıştıralım
llist = LinkedList()
llist.push(8)
llist.push(7)
llist.push(6)
llist.push(5)
llist.push(4)
llist.push(3)
llist.push(2)
llist.push(1)
print ("Orj. Bağlantılı Liste")
llist.printList()
llist.reverse()
print ("\nTers Çevrilmiş Bağlantılı Liste")
llist.printList()
Python dersleri için buraya gidebilirsiniz..