学点PYTHON基础的东东--数据结构,算法,设计模式---单向链表
2024-10-19 04:24:47
看来看来,还是以下这个实现最优雅。。
其它的,要么NODE冗余,要么初始化丑陋。。。
#!/usr/bin/env python # -*- coding: utf-8 -*- class Node: def __init__(self, initdata): self.__data = initdata self.__next = None def getData(self): return self.__data def getNext(self): return self.__next def setData(self, newdata): self.__data = newdata def setNext(self, newnext): self.__next = newnext class SinCycLinkedlist: def __init__(self): self.head = Node(None) self.head.setNext(self.head) def add(self, item): temp = Node(item) temp.setNext(self.head.getNext()) self.head.setNext(temp) def remove(self, item): prev = self.head while prev.getNext() != self.head: cur = prev.getNext() if cur.getData() == item: prev.setNext(cur.getNext()) prev = prev.getNext() def search(self, item): cur = self.head.getNext() while cur != self.head: if cur.getData() == item: return True cur = cur.getNext() return False def empty(self): return self.head.getNext() == self.head def size(self): count = 0 cur = self.head.getNext() while cur != self.head: count += 1 cur = cur.getNext() return count if __name__ == '__main__': s = SinCycLinkedlist() print('s.empty() == %s, s.size() == %s' % (s.empty(), s.size())) s.add(19) s.add(86) print('s.empty() == %s, s.size() == %s' % (s.empty(), s.size())) print('86 is%s in s' % ('' if s.search(86) else ' not',)) print('4 is%s in s' % ('' if s.search(4) else ' not',)) print('s.empty() == %s, s.size() == %s' % (s.empty(), s.size())) s.remove(19) print('s.empty() == %s, s.size() == %s' % (s.empty(), s.size()))
最新文章
- USACO翻译:USACO 2014 JAN三题(2)
- Windows环境下使用Clover四叶草引导双硬盘安装OSX 10.11.5原版镜像
- form上传文件以及跨域异步上传
- CSU 1328 近似回文词(2013湖南省程序设计竞赛A题)
- 为什么移动Web应用程序很慢(译)
- WP8.1 Study2:MapControl控件的应用
- 解决chrome同步问题
- HashCode equals
- 暴力破解UltraEdit v21 无需注册
- 安装IntelliJ IDEA JetGroovy(转)
- JSP网站开发基础总结《九》(转)
- Hyperledger Fabric 1.0 从零开始(一)——吐槽
- Alpha第八天
- 关于HTTP中GET与POST的区别
- iOS开发,改变系统铃声音量和静音,并非媒体播放音量
- js 性能篇--dom 重绘 重排 节流
- Django-rest-framework 接口实现 认证:(auth | authentication)
- swift 实践- 05 -- UITextField
- EAS开发报错 :数据库表 或 视图 不存在
- gulp使用 笔记