2010-02-05 68 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