关闭

python实现的链表

242人阅读 评论(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
查看评论

Python 实现一个全面的单链表

前言 实现清单 链表实现 总结前言算法和数据结构是一个亘古不变的话题,作为一个程序员,掌握常用的数据结构实现是非常非常的有必要的。实现清单实现链表,本质上和语言是无关的。但是灵活度却和实现它的语言密切相关。今天用Python来实现一下,包含如下操作:['addNode(self, data)...
  • Marksinoberg
  • Marksinoberg
  • 2017-04-05 19:28
  • 7945

逆序反转单链表 Python 版

题目: 给定一个单向链表的头指针,给出其反向链表。 例如,给定[1, 5, 12, 22, 33, 45],返回[45, 33, 22, 12, 5, 1]代码:class LinkedListAlgorithms(object): def __init__(self): ...
  • dongrixinyu
  • dongrixinyu
  • 2017-11-28 21:50
  • 140

翻转链表的三种方法(python实现)

具体方法来自看图理解单链表的反转,以下为该博客中方法的python实现以及测试方法一:利用三个指针逐个翻转def func1(head): p = head q = head.next p.next = None while q: r = q.next...
  • The__Apollo
  • The__Apollo
  • 2017-12-11 09:17
  • 65

Python 实现单向链表

Python 实现单向链表 什么是 链表 链表顾名思义就是~链 链表是一种动态数据结构,他的特点是用一组任意的存储单元存放数据元素。链表中每一个元素成为“结点”,每一个结点都是由数据域和指针域组成的。跟数组不同链表不用预先定义大小,而且硬件支持的话可以无限扩展。
  • qq490691606
  • qq490691606
  • 2015-11-20 13:50
  • 4359

python实现链表

刚学不久python,来实现一下单链表网上拉的图: 下面是代码了:#!/usr/bin/python # -*- coding: utf-8 -*-#__author__ = 'Mr Cai'class Node(object): '''节点'...
  • Kindle_code
  • Kindle_code
  • 2015-07-27 16:40
  • 878

Python实现链表

链表的定义:   链表(linked list)是由一组被称为结点的数据元素组成的数据结构,每个结点都包含结点本身的信息和指向下一个结点的地址。由于每个结点都包含了可以链接起来的地址信息,所以用一个变量就能够访问整个结点序列。也就是说,结点包含两部分信息:一部分用于存储数据元素的值,称为信息域...
  • qq_37691768
  • qq_37691768
  • 2017-08-25 14:07
  • 88

Python链表的实现

单链表的实现 python实现链表依赖于类生成的实例,每个节点都是一个对象,组合在一起形成一个完整链表对于node类只需关注两点:data 和 pnext 对于linked_list需要关心的:head,默认是node; length,列表的长度链表的一些常用操作:create_linked_l...
  • lvhuiyang
  • lvhuiyang
  • 2016-12-11 11:30
  • 3413

用归并排序实现单链表的排序

今天做了百度的一套数据挖掘的笔试题,其中有一道对单链表进行归并排序,因为刚学归并排序的时候是针对数组来说,所以这道题着实费了一点心思。 考点:1归并算法2单双步求中点3链表指针的操作,以及边界空指针问题4内存分配与回收; 单链表与数组相比只能顺序访问每个元素,因此在使用二路归并排序时关键在于找到链表...
  • u010159842
  • u010159842
  • 2015-05-14 21:01
  • 696

用python实现单链表

#!/usr/bin/env python3 #!-*-encoding:utf-8-*- #定义一个基于节点类的单链表对象类 class LNode:     #_next防止与python标准函数next重名     def __init__(...
  • u010069176
  • u010069176
  • 2016-07-07 10:19
  • 954

用python实现链表操作

用python实现初始化链表、链表长度、插入、删除、新增、查找、逆序
  • w2211384272
  • w2211384272
  • 2015-07-30 16:58
  • 3604
    个人资料
    • 访问:92820次
    • 积分:1445
    • 等级:
    • 排名:千里之外
    • 原创:46篇
    • 转载:69篇
    • 译文:0篇
    • 评论:3条
    最新评论