我們面試的時候,會遇到這樣的筆試題目: 如下面的資料
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...