[从头学数学] 第247节 Python实现数据结构:栈
来源:互联网 发布:数据挖掘 神经网络 编辑:程序博客网 时间:2024/06/05 01:54
剧情提要:
阿伟看到了一本比较有趣的书,是关于《计算几何》的,2008年由北清派出版。很好奇
它里面讲了些什么,就来看看啦。
正剧开始:
星历2016年07月25日 10:50:44, 银河系厄尔斯星球中华帝国江南行省。
本节到此结束,欲知后事如何,请看下回分解。
阿伟看到了一本比较有趣的书,是关于《计算几何》的,2008年由北清派出版。很好奇
它里面讲了些什么,就来看看啦。
正剧开始:
星历2016年07月25日 10:50:44, 银河系厄尔斯星球中华帝国江南行省。
[工程师阿伟]正在和[机器小伟]一起研究[计算几何]]。
<span style="font-size:18px;">#### @usage 栈# @author mw# @date 2016年07月25日 星期一 10:51:53 # @param# @return#### class Stack: def info(self): s = '['; for x in self: s+=repr(x)+', '; if (len(s) > 2): s = s[:-2]+']'; else: s += ']'; print(s); def __len__(self): return len(self.items); def __iter__(self): for i in range(len(self.items)): yield self.items[i]; #初始化 def __init__(self): self.items = [] def pop(self): if self.isEmpty(): raise RuntimeError("Attempt to pop an empty stack") topIdx = len(self.items)-1 item = self.items[topIdx] del self.items[topIdx] return item def push(self,item): self.items.append(item) def top(self): if self.isEmpty(): raise RuntimeError("Attempt to get top of empty stack") topIdx = len(self.items)-1 return self.items[topIdx] def isEmpty(self): return len(self.items) == 0 def find(self, item, start = 0): for i in range(start, len(self.items)): if (self.items[i] == item): return i; return -1; def __contains__(self, item): for i in range(len(self.items)): if (self.items[i] == item): return True; return False; </span>
<span style="font-size:18px;">def main(): #计时开始 startTime = time.clock(); s = Stack() lst = list(range(10)) lst2 = [] for k in lst: s.push(k) if s.top() == 9: print("Test 1 Passed") else: print("Test 1 Failed") s.info(); if 5 in s: print('In'); if 100 in s: print('In'); pos = s.find(3); print(pos); pos = s.find(1000); print(pos); while not s.isEmpty(): lst2.append(s.pop()) lst2.reverse() if lst2 != lst: print("Test 2 Failed") else: print("Test 2 Passed") try: s.pop() print("Test 3 Failed") except RuntimeError: print("Test 3 Passed") except: print("Test 3 Failed") try: s.top() print("Test 4 Failed") except RuntimeError: print("Test 4 Passed") except: print("Test 4 Failed") s.info(); s.push(100); s.info(); print(len(s)); #计时结束 endTime = time.clock(); #打印结果 print('操作用时:{0:.3e} s'.format(endTime-startTime));</span>
本节到此结束,欲知后事如何,请看下回分解。
0 0
- [从头学数学] 第247节 Python实现数据结构:栈
- [从头学数学] 第244节 Python实现数据结构:列表
- [从头学数学] 第245节 Python实现数据结构:排序
- [从头学数学] 第246节 Python实现数据结构:链表
- [从头学数学] 第248节 Python实现数据结构:队列
- [从头学数学] 第249节 Python实现数据结构:集合(HashSet)
- [从头学数学] 第250节 Python实现数据结构:映射(HashMap, Dict)
- [从头学数学] 第251节 Python实现数据结构:二叉查找树
- [从头学数学] 第252节 Python实现数据结构:图(Graph)
- [从头学数学] 第253节 Python实现数据结构:比特集(BitSet)
- [从头学数学] 第254节 Python实现数据结构:bloom Filter
- [从头学数学] 第255节 Python实现数据结构:字典树(Trie)
- [从头学数学] 第256节 Python实现数据结构:堆(Heap)
- [从头学数学] 第257节 Python实现数据结构:平衡二叉树(AVL)
- [从头学数学] 第258节 Python实现数据结构:伸展树(splay tree)
- [从头学数学] 第259节 Python实现数据结构:平衡多路搜索树(B-Tree)
- [从头学数学] 第260节 Python实现数据结构:B+树
- [从头学数学] 第261节 Python实现数据结构:红黑树(RB Tree)
- hdu 5735 Born Slippy
- 遍历HashMap的四种方式
- Extjs 封装多选下拉列表
- Jboss6 集成hibernate
- iOS-学习路线图(推荐)
- [从头学数学] 第247节 Python实现数据结构:栈
- ubuntu16.04下github的使用
- python学习第二天
- PHOTOSHOP常用快捷键大全
- iOS--常见错误籍
- CocoaPods pod install/pod update更新慢的问题
- null和Undefined区别
- onWindowFocusChanged重要作用
- 海康威视API-单帧数据捕获并保存成JPEG图片NET_DVR_CaptureJPEGPicture