单链表的代码python_Python实现一个单链表

class Node(object):

'''定义一个节点类'''

def __init__(self, elem):

self.val = elem

self.next = None

class SingleLinkList(object):

'''定义一个单链表'''

def __init__(self, node = None):

self.head = node

def is_empty(self):

'''判断链表是否为空'''

return self.head == None

def length(self):

'''返回链表长度'''

cur = self.head

count = 0

while cur:

count += 1

cur = cur.next

return count

def travel(self):

'''遍历链表'''

cur = self.head

while cur:

print(cur.val, end = ' ')

cur = cur.next

print('\n')

def add(self, item):

'''在链表头添加元素'''

node = Node(item)

node.next = self.head

self.head = node

def append(self, item):

'''在链表尾添加元素'''

node = Node(item)

if not self.head:

self.head = node

else:

cur = self.head

while cur.next:

cur = cur.next

cur.next = node

def insert(self, pos, item):

'''在指定位置pos插入元素'''

node = Node(item)

if pos <= 0:

self.add(item)

elif pos > self.length() - 1:

self.append(item)

else:

cur = self.head

count = 0

while count < pos - 1:

cur = cur.next

count += 1

node.next = cur.next

cur.next = node

def remove(self, item):

'''删除节点'''

cur = self.head

if cur.val == item:

self.head = cur.next

else:

while cur.next:

if cur.next.val == item:

cur.next = cur.next.next

break

else:

cur = cur.next

def search(self, item):

'''查找节点是否存在'''

cur = self.head

while cur:

if cur.val == item:

return True

else:

cur = cur.next

return False

if __name__ == '__main__':

node = Node(7)

L = SingleLinkList()

print(L.is_empty())

print(L.length())

L.append(3)

L.add(999)

L.insert(-3, 110)

L.insert(99, 111)

print(L.is_empty())

print(L.length())

L.travel()

L.remove(111)

L.travel()

print(L.search(999))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值