节点操作总结

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值