节点操作总结
2015-11-11 11:38
369 查看
Stack 添加元素
队列添加元素
链表加入
插入
出队列
是否为空
去除掉第一个
得到第一个
def push( self, newValue ): self.top = LinkedNode( newValue, self.top )
队列添加元素
def enqueue( self, newValue ): newNode = LinkedNode( newValue ) if self.front == None: self.front = newNode else: self.back.link = newNode self.back = newNode
链表加入
def prepend( self, new_value ): self.__front = LinkedNode( new_value, self.__front )
插入
链表 def insert( self, cursor, new_value ): if cursor == self.__front: self.prepend( new_value ) else: node = self.__front while node.link != cursor: node = node.link node.link = LinkedNode( new_value, cursor )
链表 def append( self, new_value ): node = self.__front newNode = LinkedNode( new_value ) if node == None: self.__front = newNode else: while node.link != None: node = node.link node.link = newNode
树 def __insert(self, val, node): if val < node.val: # check if need to go left if node.left == None: # if no left child node.left = BTNode(val) # insert it here else: # otherwise self.__insert(val, node.left) # traverse with the left node else: # need to go right if node.right == None: # if no right child node.right = BTNode(val) # insert it here else: # otherwise self.__insert(val, node.right) # traverse with the right node def insert(self, val): if self.root == None: # if tree is empty self.root = BTNode(val) # create root node with the value else: # otherwise self.__insert(val, self.root) # call helper function with root self.size += 1
出队列
def dequeue( self ): assert not self.isEmpty(), "Dequeue from empty queue" self.front = self.front.link if self.front == None: self.back = None
是否为空
队列 def isEmpty( self ): return self.front == None
栈 def isEmpty( self ): return self.top == None
去除掉第一个
栈 def pop( self ): assert not self.isEmpty(), "Pop from empty stack" self.top = self.top.link
得到第一个
队列 def peek( self ): assert not self.isEmpty() return self.front.value
栈 def peek( self ): assert not self.isEmpty(), "peek on empty stack" return self.top.value
相关文章推荐
- Apache支持的虚拟主机数是一定的
- Java核心---多线
- echart,highcharts,chart.js等chart属性记录
- 系统升级到iOS9,真机运行报“was compiled with optimization - stepping may behave oddly...”,闪退
- 身体衰老有个明显迹象
- 微信 分享到朋友圈 代码
- JS---类的继承
- <c:if>没有<c:else>解决办法
- order by rand() 问题
- android开发中经常看到@Override原来是这个意思
- java日期时间解析
- 使用AngularJS构建大型Web应用,框架的建议
- 关于Windows下USB函数SetupDiEnumDeviceInfo()与SetupDiEnumDeviceInterfaces()的心得
- 9.块
- 有关百度一键分享链接到微信朋友圈无法打开网页,报404错误的解决办法,from=timeline&isappinstalled=0,和伪静态规则有关
- 视频图像分割研究与实现(二):常见图像和视频分割方法概述
- 视频图像分割研究与实现(二):常见图像和视频分割方法概述
- setjmp和longjmp函数使用详解
- 关于SVN报错,svn : RA layer request failed,不能正常使用SVN
- SQLSERVER 触发器 将一个服务器上的数据库中数据插入到另一个服务器上的数据库中怎么做