1-2 线性表的链式存储(单链表)

定义:线性表的链式存储又称为单链表,它是指通过一组任意的存储单元来存储线性表中的数据元素。每个链表结点,除存放元素本身的信息外,还需要存放一个指向后继的指针。
特点:利用单链表可以解决顺序表需要大量连续存储单元的缺点,但也存在浪费存储空间的问题。单链表是非随机存取的存储结构,在查找某个特定的节点时,需要从表头开始遍历,依次查找。
代码:
class SingleNode(object):

    def __init__(self,data,next=None):
        self.data=data
        self.next=next

"""
单链表
"""
class SingleList(object):

    def __init__(self,node=None):
        self.head=node

    def length(self)->int:
        count=0
        while self.head!=None:
            count+=1
            self.head=self.head.next
        return count

    def ListHeadInsert(self,value:int):
        newNode=SingleNode(value)
        newNode.next=self.head
        self.head=None

    def ListTailInsert(self,value:int):
        newNode=SingleNode(value)
        if self.isEmpty():
            self.head=newNode
        else:
            while self.head.next:
                self.head=self.head.next
            self.head.next=newNode

    def isEmpty(self):
        if self.head==None:
            return True
        else:
            return False

    def getElem(self,i:int):
        j=1
        while self.head!=None and j<i:
            self.head=self.head.next
            j+=1
        return self.head

    def locateElem(self,i:int):
        while self.head and self.head.data!=i:
            self.head=self.head.next
        return self.head

    def insertNode(self,value,i):
        prior=SingleList(self.head).getElem(i-1)
        newNode=SingleNode(value)
        newNode.next=prior.next
        prior.next=newNode

    def deleteNode(self,i:int)->bool:
        if i<1 or i>SingleList(self.head).length():
            return False
        tem=SingleList(self.head).getElem(i-1)
        tem.next=tem.next.next
        return True

全部评论

相关推荐

就在我现在公司的隔壁每天经过都唏嘘不已(就是羡慕)什么时候可以到这里上班啊
柯基在debug:从大学毕业投简历到现在了,应届的时候我都面到终面了,现在工作四年了连简历初筛都过不了了
投递莉莉丝游戏等公司10个岗位
点赞 评论 收藏
分享
05-30 12:03
山西大学 C++
offer来了我跪着...:不是骗子,等到测评那一步就知道为啥这么高工资了
点赞 评论 收藏
分享
真烦好烦真烦:豆包润色了自己没看看吗,再说了,都说豆包是愚蠢且勤快的大学生,ds才是聪明的研究生,怎么敢让豆包写论文的
你们的毕业论文什么进度了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务