a_good_name

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  •   #链表的制作(包含功能: 从头部添加数据,从尾部添加数据,在中间插入数据,查看链表长度,遍历链表,反转链表,删除数据)
      
      class Node():
          def __init__(self,item):
          	self.item = item
          	self.next = None
      class Link():
          def __init__(self):
              self.head = None
          def addByHead(self,item):
              node = Node(item)
              node.next = self.head
              self.head = node
          def isEmpty(self):
              return self.head == None
          
          def addByTail(self,item):
              node = Node(item)
              if self.isEmpty(): #链表为空的操作
                  self.head = node
                  return
              # 链表为非空的操作
              pre = None
              cur = self.head
              while cur:
                  pre = cur
                  cur = cur.next
              pre.next = node
          def insertNode(self,item,pos):
              node = Node(item)
              pre = None
              cur = self.head
              if pos == 0:
                  self.addByHead(node)
                  return
      
              for i in range(pos):
                  pre = cur
                  cur = cur.next
              pre.next = node
              node.next = cur
          def Length(self):
              count =0
              cur = self.head
              while cur:
                  cur = cur.next 
                  count +=1
              return count
          def removeNode(self,item):
              pre = None
              cur = self.head
              nextnode = cur.next
              if item == self.head.item:
                  self.head = self.head.next
                  return
              while cur:
                  if cur.item == item:
                      pre.next = nextnode
                      return
                  pre = cur 
                  cur = cur.next
                  nextnode = cur.next
                  
         def reverse(self):
             pre = None
             cur = self.head
             while cur:
                  nextnode = cur.next
                  cur.next = pre
                  pre = cur
                  cur = nextnode
              self.head = pre 
      
                  
    
posted on 2021-06-30 14:20  a_good_name  阅读(77)  评论(0)    收藏  举报