關於面試的樹結構簡單實現

2022-09-12 05:33:19 字數 1466 閱讀 9976

我們面試的時候,會遇到這樣的筆試題目: 如下面的資料 

1 1 1 1 1 

2 1 2 2 2

3   1 3 3 3

4 2 4 4 4

5 3 5 5 5

讓你簡單的設計一下,實現樹結構 

其實也就是 id 和 pid 的問題,多的不說,直接上**,

哈哈,拙見,有不足之處請大家指出:

首先是乙個測試類(也是乙個實體類)儲存你的資料(可以是從資料庫中查出來的資料),我簡單的設定了幾個字段,如有需要可自己根據實際情況而定

public class test

public void setid(string id)

public string getpid()

public void setpid(string pid)

public string getname()

public void setname(string name)

}然後是乙個為了構造樹的乙個實體類 ;

稍微解釋一下,裡面的children 字段,主要是儲存這個物件的孩子的(哈哈,習慣這樣說)也就是他的子節點;

public class testtree

public void setid(string id)

public string getpid()

public void setpid(string pid)

public string getname()

public void setname(string name)

public listgetchildren()

public void setchildren(listchildren)

private string pid;

private string name;

private listchildren;

public testtree()

@override

public string tostring()

再然後就是為了構造這個樹的方法了,方法很簡單,還有一些別的更好的方法,這裡就不做了,獻上我自己的拙見:

這個方法也很簡單,首先是有乙個根,然後把你的資料放到乙個map集合裡面去,主要是下面的放孩子進去,也是遍歷你的資料

當它沒有pid的時候它就是乙個根節點,有pid 的時候,就把它對應的資料放到孩子裡面去

public class runtree

treeone.setname(model.getname());

map.put(model.getid(), treeone);

}//放孩子進去

for (test model:data) else }}

return nodes;}}

下面再來乙個小小的測試:

public class testmain

好了,大致就是這樣,希望對你有所幫助

樹結構以及簡單實現

樹結構,一種非線性結構,指的是n個有父子關係節點的有限集合。樹中任一節點可以有0或多個子節點,但只能有乙個父節點。根節點是乙個特例,根節點沒有父節點,葉子節點沒有子節點。樹中每個節點既可以是其上一級節點的子節點,也可以是下一級節點的父節點,因此同乙個節點可以既是父節點,也是子節點。如果按節點是否包含...

關於樹結構的定義

其實關於樹就是一對多的資料結構,關於其的定義如下所示 樹 tree 是n n 0 個結點的有限集。n 0時稱為空樹。在任意一棵非空樹中 1 有且僅有乙個特定的稱為根 root 的結點 2 當n 1時,其餘結點可分為m m 0 個互不相交的有限集t1 t2 tm,其中每乙個集合本身又是一棵樹,並且稱為...

Python python實現樹結構

樹是我們常見的一種一對多的資料結構。最近為了處理一些事情,寫了一顆三層的樹。每層的子節點數目均不確定,動態新增。為了方便管理,寫成了巢狀樹。class modeltree 第一層樹,建立樹是必須指定根結點,不支援建立空樹。整顆樹儲存在tree dict中,key為root,value為childre...