注:有头结点

#!/usr/bin/python3.5
# _*_coding:utf-8class Node:def __init__(self, value):self.data = valueself.next = Noneself.prev = Noneclass CycleDoubleLinkList:def __init__(self):self._head = Node(None)self._head.next = self._headself._head.prev = self._headself._rear = self._headdef insert(self, index, value):if index <= 0:print('插入位置有误')returnn = Node(value)cur = self._headfor i in range(index - 1):cur = cur.nextif cur == self._head:print('插入位置有误')returnn.next = cur.nextcur.next.prev = ncur.next = nn.prev = curif n.next == self._head:self._rear = ndef remove(self, index):if self.empty():print('链表是空的')if index <= 0 and index > self.length():print('删除位置有误')returncur = self._headfor i in range(index - 1):cur = cur.nextn = cur.nextcur.next.next.prev = curcur.next = cur.next.nextif cur.next == self._head:self._rear = curdel ndef empty(self):return self._head.next == self._headdef travel(self):cur = self._head.nextprint('正向输出:')while cur != self._head:print(cur.data)cur = cur.nextprint('逆向输出:')while cur.prev != self._head:cur = cur.prevprint(cur.data)def search(self,value):cur = self._head.nextindex = 1while cur != self._head:if cur.data == value:print('index:%d,value:%d' % (index,value))returncur = cur.nextindex += 1print('没有该元素')def clear(self):cur = self._head.nextwhile cur != self._head:temp = curcur = cur.nextdel tempself._head.next = self._headself._head.prev = self._headdef appendleft(self,value):n = Node(value)self._head.next.prev = nn.next = self._head.nextself._head.next = nn.prev = self._headif n.next == self._head:self._rear = ndef appendright(self,value):n = Node(value)self._rear.next.prev = nn.next = self._rear.nextself._rear.next = nn.prev = self._rearself._rear = ndef length(self):cur = self._head.nextcount = 0while cur != self._head:cur = cur.nextcount += 1return countif __name__ == '__main__':link = CycleDoubleLinkList()

Python写数据结构:双向循环链表相关推荐

  1. Python写数据结构:单向循环链表

    注:带头结点 #!/usr/bin/python3.5 # _*_coding:utf-8_*_class Node:def __init__(self, value):self.data = val ...

  2. 数据结构 -- 双向循环链表

    这篇文章写的是双向循环链表,这也是个非常经典的数据结构,我们在看 Linux 内核代码时就经常会遇到它.比如,在Linux的内核中实现进程描述符,使用的就是双向循环链表,因为它使用起来很方便,每个节点 ...

  3. 数据结构--双向循环链表的实现

    前言 之前学习了单链表的实现,单链表在实现的过程中,尾删,尾插是比较麻烦的,时间复杂度为O(N),而双向循环链表就不会有这样的顾虑,双向循环链表的结构是很有优势的.具体优势在实现的时候会显现出来. 双 ...

  4. python写数据结构书_有哪些用 Python 语言讲算法和数据结构的书?

    python数据结构基础工具书籍下载-持续更新​www.jianshu.com 以上网址有大量python数据结构的书籍下载,内容比较长,我这边拷贝了一部分. 本书示例丰富,图文并茂,以让人容易理解的 ...

  5. c语言 数据结构 双向循环链表逆序

    双链循环链表排序: 原链表: 1 2 3 4 5 6 7 8 9 10 逆序后:10 9 8 7 6 5 4 3 2 1 思路: 把最后一个节点删除, 插到head下面去 数据 1 不用管, 把后面的 ...

  6. Python写数据结构:二叉树的创建和遍历

    #!/usr/bin/python3.5 #_*_coding:utf-8_*_class Node:def __init__(self,value):self.data = valueself.lc ...

  7. Python写数据结构:二叉树的性质

    二叉树性质1: 在二叉树的第i层上至多有2^(i-1)个结点(i>=1) 二叉树性质2: 深度为k的二叉树至多有2^k - 1个结点(k>=1) 二叉树性质3: 对任何一棵二叉树T,如果其 ...

  8. Python写数据结构:循环队列

    #!/usr/bin/python3.5 #_*_coding:utf-8_*_class Queue():def __init__(self,capacity):self.queue = [None ...

  9. Python写数据结构:栈(顺序存储结构)

    #!/usr/bin/python3.5 #_*_coding:utf-8_*_class Stack():def __init__(self,capacity):self.stack = [None ...

最新文章

  1. C++ transform for_each
  2. mysql命令行安装报错_centos命令行安装mysql随机密码查看方法(遇到问题及其解决办法)...
  3. 微电网日前优化调度 。算例有代码(3)
  4. 一键分享博客或新闻到Teams好友或频道
  5. mysql56允许远程连接_mysql允许远程连接的方法
  6. java增加内容辅助_Eclipse自定义内容辅助基于默认Java内容辅助结果
  7. 电脑公司特别版常用软件盘
  8. 同比、环比的区别及计算公式
  9. Windows文件系统-NTFS文件系统
  10. c语言的32位指针加1是多少,c语言中,指针加1的情况.指针变量详细介绍
  11. VR全景图片浏览实现
  12. 二进制转十进制快速方法
  13. .net CallbackOnCollectedDelegate 垃圾回收问题。 (Handle::Invoke”类型的已垃圾回收委托进行了回调。)
  14. springboot毕设项目体育馆开放管理系统设计与实现p6lj1(java+VUE+Mybatis+Maven+Mysql)
  15. 只招「测试开发工程师」了
  16. 招聘一个靠谱的iOS
  17. 11.Kuerbernetes
  18. 【在线电子杂志制作】云展网教程 | 如何设置缩放功能
  19. Dana Winner - Moonlight Shadow
  20. xp sp3系统连接华为手机,显示mtp驱动无法安装 2021/04/12

热门文章

  1. [转载] Python一行代码实现1到100之和
  2. springcloud-provider-consumer-register
  3. Hibernate的学习详解(4)
  4. [轉]最流行的PHP MVC框架
  5. 【C++笔记】构造函数与析构函数相关知识
  6. 【小白冲冲冲!!!】补1: 说一下最大化后验概率
  7. java final域_【Java】final 域的内存语义
  8. 格式notepad自动对齐_6.2 对齐设置
  9. 安卓中为什么onkeydown没有相应_为什么今年在园区注册个人独资企业能将企业总税率降低至3%?...
  10. python关键词共现_python 共现矩阵的实现