打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python线性双链表的构建

1 问题

单链表在查找大量数据方面有一定的复杂与困难,计算量大,只能单方向的寻找数据,不能随意的查找结点数据。

2 方法

用文字描述解题思路,可配合一些图形以便更好的阐述。解决问题的步骤采用如下方式:

  1. 结构中给出存储元素的位置,在建立两个指针,一个指向前驱结点,另一个指向后继结点;

  2. 每个元素的前驱结点的指针指向前面的元素;

  3. 头插法是双链表从头部依次插入元素,在单向链表的每个结点中再设置一个指向其前驱结点的指针域。

    即它有两个指针域,一个指向前驱,一个指向后继。

通过实验、实践等证明提出的方法是有效的,是能够解决开头提出的问题。

代码清单 1

class Node(object):
def __init__(self,val,p=0):
      self.data = val
      self.next = p
      self.prev = p
class LinkList(object):
   def __init__(self):
      self.head = 0
   def __getitem__(self, key):
       if self.is_empty():
          print 'linklist is empty.'
          return
       elif key <0 or key > self.getlength():
           print 'the given key is error'
           return
   else:
        return self.getitem(key)
 def __setitem__(self, key, value):
     if self.is_empty():
         print 'linklist is empty.'
         return
      elif key <0 or key > self.getlength():
          print 'the given key is error'
          return
      else:
           self.delete(key)
           return self.insert(key)  

3 结语

针对单链表查找大量数据时出现的困难,单链表其结构简单,功能少,通过单链表构建双链表,链式存储结构--链表不受固定的存储空间限制,可以快速进行插入和删除操作

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
数据结构—习题2.4 求两个递增链表的差集
数据结构导论(第二章线性表)
数据结构——单链表的定义和实现
第7章 查找
【leetcode】142.环形链表 II
循环链表
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服