关闭

python实现的链表

94人阅读 评论(0) 收藏 举报

http://blog.csdn.net/u011608357/article/details/28997089


python实现的链表,包括插入、查找、删除操作

  1. #!/usr/bin/python   
  2. class linknode():  
  3.     def __init__(self,k,n=None):  
  4.         self.key=k;  
  5.         self.next=n;  
  6. def createlist():        #创建链表  
  7.     n=raw_input("enter the num of nodes");  
  8.     n=int(n);  
  9.     if n<1 :  
  10.         return ;  
  11.     else :  
  12.         a=raw_input("enter the key");  
  13.         head=linknode(k=a);  
  14.           
  15.         if n is 1:  
  16.             return head;  
  17.         else :  
  18.             p=head;  
  19.             for i in range(1,n):  
  20.                 a=raw_input("enter a key");  
  21.                 t=linknode(k=a);  
  22.                 p.next=t;  
  23.                 p=t;  
  24.             return head;  
  25. def printlist(head):    #打印链表  
  26.     p=head;  
  27.     while p!= None:  
  28.         print p.key;  
  29.         p=p.next;  
  30. def listlen(head):    #计算链表长度  
  31.     c=0;  
  32.     p=head;  
  33.     while p!= None:  
  34.         c=c+1;  
  35.         p=p.next;  
  36.     return c;  
  37. def insert(head,n):     #插入元素  
  38.     if n<1 or n>listlen(head) :  
  39.         return ;  
  40.     p=head;  
  41.       
  42.     if n is 1:  
  43.         a=raw_input("enter a key");  
  44.         t=linknode(k=a);  
  45.         t.next=head;  
  46.         head=t;  
  47.           
  48.     else :  
  49.         for i in range(1,n-1):  
  50.             p=p.next;  
  51.         a=raw_input("enter a key");  
  52.         t=linknode(k=a);  
  53.         t.next=p.next;  
  54.         p.next=t;  
  55.     return head;      
  56.       
  57. def dellist(head,n):     #删除  
  58.     if n<1 or n>listlen(head):  
  59.         return head;  
  60.     elif n is 1:  
  61.         head=head.next;  
  62.     else:  
  63.         p=head;  
  64.         for i in range(1,n-1):  
  65.             p=p.next;  
  66.         q=p.next;  
  67.         p.next=q.next;  
  68.     return head;  
  69.   
  70. def findlist(head,n):   # 查找  
  71.     p=head;  
  72.     if p is None:  
  73.         return ;  
  74.     while(p!=None):  
  75.         if p.key is repr(n):  
  76.             print "find it";  
  77.             return 1;  
  78.         else:  
  79.             p=p.next;  
  80.     if p is None:  
  81.         print "not found"
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:52267次
    • 积分:1062
    • 等级:
    • 排名:千里之外
    • 原创:46篇
    • 转载:62篇
    • 译文:0篇
    • 评论:3条
    最新评论