Python数据结构——链表的实现

链表由一系列不必在内存中相连的结构构成,这些对象按线性顺序排序。每个结构含有表元素和指向后继元素的指针。最后一个单元的指针指向NULL。为了方便链表的删除与插入操作,可以为链表添加一个表头。

删除操作可以通过修改一个指针来实现。

插入操作需要执行两次指针调整。

 

1. 单向链表的实现

1.1 Node实现

    每个Node分为两部分。一部分含有链表的元素,可以称为数据域;另一部分为一指针,指向下一个Node。

1.2 SinglelinkedList的实现

1.3 检测链表是否为空

1.4 add在链表前端添加元素

1.5 append在链表尾部添加元素

1.6 search检索元素是否在链表中

1.7 index索引元素在链表中的位置

1.8 remove删除链表中的某项元素

1.9 insert链表中插入元素

全部代码

1 6 收藏 4 评论

相关文章

可能感兴趣的话题



直接登录
最新评论
  • 查入函数应该写错了
    def insert(self,pos,item):
    if pos == self._size:
    self.append(item)
    else:
    temp=Node(item)
    count = 1
    pre = None
    current = self._head
    while count <= pos and current != None:
    if count == pos:
    pre = current.get_next()
    current.set_next(temp)
    temp.set_next(pre)
    else:
    current = current.get_next()
    count += 1

    没有测试,思路应该是这样的。

    • def insert(self,pos,item):
      """
      插入元素
      """
      if pos == self._size:
      self.append(item)
      else:
      temp=Node(item)
      count = 1
      pre = None
      current = self._head
      while count <= pos and current != None:
      if count == pos:
      pre = current.get_next()
      current.set_next(temp)
      temp.set_next(pre)
      else:
      current = current.get_next()
      count += 1
      self._size += 1
      这个是经过测试的

  • wk   2016/01/09

    很早之前写过,用一个类作node,里面包含两种方法,previous,next

跳到底部
返回顶部