2010-02-05 42 views
0

我奋力去了解如何使用字典编写的基本实现,并在Python中序遍历二叉搜索树。该课程必须使用以下结构。的Python解释二叉搜索树

我将非常高兴,如果有人能在每个功能填写空白(通)让我开始。

class Dictionary: 

    def __init__ (self): 

     pass 

    def insert (self, key, value): 

     pass 

    def delete (self, key): 

     pass 

    def find (self, key): 

     pass 

    def traverse (self, f): 

     pass 

    def __str__ (self): 

     return str(self) 
+1

我还没有理解你在这里做什么。你是否想要实现你自己的字典类?这只是一个学术练习吗?我问,因为Python已经有一个很好的字典实现内置到语言本身。 – 2010-02-05 09:19:45

+2

它闻起来像给我做作业;就像你的其他问题一样。如果功课是这样的话,我们可以指导你一个好的教程的方向,而不是告诉你,你自己的内置版本的功能没有意义。 – 2010-02-05 09:23:26

+2

在Python中使用二叉树数据结构肯定有一点意义,它是Python缺失的部分之一,但这绝对是家庭作业。没有人不知道如何实现二叉树指定一个这样的API,不要介意说它*有*使用该API。 – 2010-02-05 09:32:02

回答

-2
class Dictionary: 
    def __init__ (self): 
     self.data = {} 
    def insert (self, key, value): 
     self.data[key] = value 
    def delete (self, key): 
     if key in self.data: 
      del self.data[key] 
    def find (self, key): 
     if key in self.data: 
      return self.data[key] 
     return None 
    def traverse (self, f): 
     for key,value in self.data: 
      f(key,value) 
    def __str__ (self): 
     return str(self) 
+2

包含微妙的错误 – Will 2010-02-05 09:28:03

+2

'__str__'中的无限递归,'traverse'中缺少'.items()'。 – AndiDog 2010-02-05 09:31:55

+0

不是二叉树;遍历不是“按顺序”(OP没有说出他的意思是什么顺序,但大概是排序顺序,因为这是二叉树给你的)。如果你不想回答作业,我会和你在一起,但不要故意给出错误的答案。 Python的字典不是二叉树。 – 2010-02-05 09:35:49

0

二叉树

您可能需要使用the array representation of a binary tree。 Python有一个强大的list data type,这将使大部分工作变得微不足道。 :)

class BinaryTree(): 
    def __init__(self): 
    self.nodes = [] 

在这里,这是你可以从开始的基础。

+0

我的意思是,你确实想要实现一个二叉树,对吧? <。< – badp 2010-02-05 10:14:58

+0

是的,我想使用二叉搜索树实现一个字典类。 – 2010-02-05 11:08:44