[Data Structure] Linked List Implementation in Python

class Empty(Exception):
	pass

class Linklist:

	class _Node:
		# Nonpublic class for storing a linked node
		__slots__='_element','_next'

		def __init__(self,ele,ne):
			self._element=ele
			self._next=ne

	def __init__(self):
		self._head=None
		self._size=0
		self._tail=None

	def __len__(self):
		return self._size

	def is_empty(self):
		return self._size==0

	def add_first(self,e):
		self._head=self._Node(e,self._head)
		if self._size==0:
			self._tail=self._head
		self._size+=1

	def add_last(self,e):
		newlastnode=self._Node(e,None)
		if ~self.is_empty():
			self._tail._next=newlastnode
			self._tail=newlastnode
		else:
			self._tail=newlastnode
		self._size+=1

	def remove_first(self):
		if self.is_empty():
			raise Empty("The linked is empty")
		self._head=self._head._next
		self._size-=1

  

posted on 2018-09-25 11:32  chiyeung  阅读(100)  评论(0编辑  收藏  举报

导航