首页 > 其他 > 详细

数据结构:链表(五)

时间:2020-05-13 21:56:27      阅读:58      评论:0      收藏:0      [点我收藏+]
单链表的操作

insert(pos, item) 指定位置添加元素

思路:1、当pos<0的时候,我们将其视为在头部添加元素

   2、当pos远大于整个链表的长度,我们将视为在尾部添加元素

   3、中间添加时,我们应该先让新节点的next指向原来pos处的节点,即node.next=(pos-1).next,而pos使pos-1处节点指向新的节点     (pos-1.next)=node

    

class SingleNode(object):  #单链表节点
    def __init__(self,item):   
        self.item=item
        self.next=None
class SingleLinkList(object):
    def __init__(self):
        self._head=Nonde
    def add(self,item):    #头部添加元素
        node=SingleNode(item)
        node.next=self._head
        self._head=node
    def append(self,item):   #尾部添加元素
     node=SingleNode(item)
        if self._head==None:
      self._head=node
     else:
       cur=self._head
          node=SingleNode(item)
          while cur!=None :
              cur=cur.next
          cur.next=node
     def length(self):   #单链表的长度
        cur=self._head
        count=0
        while cur!=None:
            count=count+1
            cur=cur.next
        return count



    def insert(pos,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=count+1
            node=SingleNode(item)
            node.next=cur.next
            cur.next=node
  

  

数据结构:链表(五)

原文:https://www.cnblogs.com/cong3Z/p/12884831.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!