【练习册】 2015-08-09 Dlist Queue Stack by python
来源:互联网 发布:哈奇森效应 知乎 编辑:程序博客网 时间:2024/05/16 17:50
以后用python研究算法,用python做一些练习。
Queue和Stack python有build in,Dlist没有。
Dlist:
#!/usr/bin/python#coding=utf-8'''dual direction list'''class MyNode: def __init__ (self,Data=None,PreNode=None,NextNode=None): self.Data=Data self.PreNode=PreNode self.NextNode=NextNode class MyDList: def __init__ (self,head): self.head=head def forward_trace(self,node): if node: print(node.Data,end=",") self.forward_trace(node.NextNode) def reverse_trace(self,node): if node: print(node.Data,end=",") self.reverse_trace(node.PreNode) def show(self): print("forward_trace") self.forward_trace(self.head) print("\nreverse_trace") self.reverse_trace(self.find_tear(self.head)) def find_tear(self,node): if node.NextNode == None: return node else: return self.find_tear(node.NextNode) def add_tear(self,node_add): node_tear=self.find_tear(self.head)# print(node_tear) node_tear.NextNode=node_add node_add.PreNode=node_tear if __name__ == '__main__': n0=MyNode(0,None,None) n1=MyNode(1,None,None) n2=MyNode(2,None,None) n3=MyNode(3,None,None) n4=MyNode(4,None,None) n5=MyNode(5,None,None) dlist=MyDList(n0) dlist.add_tear(n1) dlist.add_tear(n2) dlist.add_tear(n3) dlist.add_tear(n4) dlist.add_tear(n5) dlist.show()
Queue:
#!/usr/bin/python# coding=utf-8'''' stack'''class Queue: def __init__(self, size=16): self.stack = [] self.size = size self.length=0 def isEmpty(self): if len(self.stack) == 0 : return True else: return False def isFull(self): if len(self.stack) == self.size: return True else: return False def add(self, obj): if self.isFull(): raise Exception("QueueOverFlow") else: self.stack.append(obj) def delete(self): if self.isEmpty(): raise Exception("QueueIsEmpty") else: self.stack=self.stack[1:len(self.stack)] def show(self): print(self.stack) q = Queue()q.show()q.add(1)q.add(2)q.add(3)q.show()q.delete()q.delete()q.delete()q.show()
Stack:
#!/usr/bin/python#coding=utf-8class Stack: def __init__(self, size=16): self.stack = [] self.size = size self.length=0 def isEmpty(self): if len(self.stack) == 0 : return True else: return False def isFull(self): if len(self.stack) == self.size: return True else: return False def add(self, obj): if self.isFull(): raise Exception("StackOverFlow") else: self.stack.append(obj) def delete(self): if self.isEmpty(): raise Exception("StackIsEmpty") else: self.stack=self.stack[0:len(self.stack)-1] def show(self): print(self.stack)if __name__ == '__main__': s = Stack(3) s.add(1) s.add(2) s.show() s.delete() s.show() s.add(6) s.show() s.delete() s.delete() s.show()
0 0
- 【练习册】 2015-08-09 Dlist Queue Stack by python
- 03dlist-stack
- #python练习#leetcode 406. Queue Reconstruction by Height【贪心】
- 【练习册】 2015-08-10 ClassicTrie by python
- 【练习册】 2015-08-12 AVL by python
- queue by one stack、two stack and three stack
- General Dlist Implement by C
- Anagrams by Stack python
- python实现stack 和 queue
- python实现Stack和Queue
- DList
- python题目-----queue by list
- python实现stack(栈)和队列(queue)
- stack,queue
- Queue\Stack
- queue stack
- Stack&Queue
- stack&queue
- mac secureCRT保存密码
- K - Let the Balloon Rise
- 【再思考】1025. 反转链表 (25)
- java 堆和栈一般理解
- SASS 学习
- 【练习册】 2015-08-09 Dlist Queue Stack by python
- SVM支持向量机
- 【Unity基础知识之五】Unity3d-在Unity项目中使用Mono DLL(动态链接库)
- hdu 3336 Count the string KMP+DP
- Unity中md5,base64
- Spring依赖注入
- 第四章 串、数组和广义表
- Activity的生命周期
- 仅从.mdf恢复MSSQL数据库方法