用Python实现单链表的头插法与尾插法

来源:互联网 发布:js 倒计时 编辑:程序博客网 时间:2024/06/15 09:59

以下代码由python3实现,欢迎大家来讨论

import  random as rdclass Linklist(object):    def __init__(self,data,next=None):        self.data=data        self.next=nextdef createListHead(n):    L=Linklist(0)  ##链表头    list=[]    for i  in range(n):        num=rd.randint(0,100)        list.append(num)        p=Linklist(num,L.next)        L.next=p        L.data+=1 ##链表长度加1    print("rawlist===",list)    return Ldef createListTail(n):    L=Linklist(0)  ##链表头    list = []        num = rd.randint(0, 100)     list.append(num)    head=Linklist(num)  ##建立实际数据表头    L.data+=1 ##链表长度加1    L.next=head    temp=head ##建立当前数据指针    for i  in range(n-1):        num = rd.randint(0, 100)        list.append(num)        p=Linklist(num)        temp.next=p ##当前数据的指针指向新数据        temp=p  ##移动当前数据指针        L.data+=1 ##链表长度加1    temp.next=None    print('raw data',list)    return Lif __name__=='__main__':    head=createListTail(10)    realData=head.next    list = []    while realData!=None:        list.append(realData.data)        realData=realData.next    print('linklist===',list)    print('linklist len====',head.data)

  


0 0