python3 链表
code
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, nextNode): self.next = nextNode temp = Node(93) temp.setData(10) print(temp.getData()) # 定义一个无序链表 class UnorderedList: def __init__(self): self.head = None def isEmpty(self): return 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 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 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()) def show(self): current = self.head while current != None: print(current.getData(),end="->") current=current.getNext() print("\n") myList = UnorderedList() myList.add(31) myList.add(77) myList.add(17) myList.add(93) myList.add(26) myList.add(54) print(myList.search(17)) myList.show() myList.remove(54) print(myList.search(54)) myList.show()
outputs
macname@MacdeMBP ~ % python3 test.py 10 True 54->26->93->17->77->31-> False 26->93->17->77->31-> macname@MacdeMBP ~ %