صف پیوندی را در زبان پایتون چیست ؟
صف پیوندی را در زبان پایتون چیست ؟
اولین پیادهسازي ADT صفی که ما میخواهیم ببینیم، صف پیوندي نامیـده مـیشـود، زیـرا از یک سري شیء Node به هم پیوسته تشکیل شده است. در اینجا تعریف کلاس را میبینید:
class Queue:
def __init__(self):
self.length = 0
self.head = None
def isEmpty(self):
return (self.length == 0)
def insert(self, cargo):
node = Node(cargo)
node.next = None
if self.head == None:
# if list is empty the new node goes first
self.head = node
else:
# find the last node in the list
last = self.head
while last.next: last = last.next
# append the new node
last.next = node
self.length = self.length + 1
def remove(self):
cargo = self.head.cargo
self.head = self.head.next
self.length = self.length – 1
return cargo
متدهاي isEmpty و remove معادل متدهاي isEmpty و removeFirst لیستهـاي پیوندي هستند. متد insert جدید و کمی پیچیدهتر است. ما میخواهیم یک قلم دادة جدید به آخ لیست اضافه کنیم. اگر تهی باشد، مـا فقـط head را براي اشاره به گره جدید تنظیم میکنیم.
در غیر اینصورت، ما لیستها را تا گره آخر پیمایش میکنیم و گـره جدیـد را بـه آخـر لیسـت ضمیمه میکنیم. ما میتوانیم گره آخر را از جایی که مشخصۀ next آن None است، تشخیص دهیم. براي یک شیء Queue خوشفرم و خوشحالت، دو نامتغیر وجود دارد. مقـدار length بایـد تعداد گرههاي صف باشد و گره آخر باید یک مشخصۀ next برابر با None داشته باشد.
برای اموزش های ویدیویی زبان پایتون به بستر ویدیو های اموزشی بروید