本文共 1544 字,大约阅读时间需要 5 分钟。
python没有指针所以需要自己定义结点,在结点中定义数据域和指针域
# 单链表的python实现# 定义一个结点class Node: def __init__(self, initdata): self.data = initdata self.next = None def getData(self): return self.data def getNext(self): return self.next def setData(self, newdata): self.data = newdata def setNext(self, newnext): self.next = newnext# 定义一个无序链表class UnorderedList: # 定义一个头结点,初始指向为空 def __init__(self): self.head = None # 向链表加入元素 def add(self, item): temp = Node(item) temp.setNext(self.head) self.head = temp # 判断链表元素个数 def size(self): current = self.head count = 0 while current != None: count += 1 current = current.getNext() return count # 搜索链表,查找元素item,找到返回True,失败返回False def search(self, item): current = self.head found = False while current != None and not found: if current.getData() == item: found = True else: current = current.getNext() return found # 删除链表元素,先查找,找到后指向目标元素下一个元素 # 若删除第一个元素直接将head指向第二个元素即可 def remove(self, item): current = self.head previous = None found = False while not found: if current.getData() == item: found = True else: previous = current current = current.getNext() if previous == None: self.head = current.getNext() else: previous.setNext(current.getNext())
转载地址:http://ygren.baihongyu.com/