一 實際專案中樹形資料結構與遞迴演算法應用

2021-07-26 06:40:15 字數 1545 閱讀 9140

前言:

在大部分個專案中幾乎都涉及到選單的展示,在這裡普遍用到了樹形資料結構和遞迴演算法:

1.舉例:

建表:

(1)模擬效果圖:

(2)**片段:

2.資料庫中運用sql進行樹形查詢:

(1)mysql比較麻煩,稍後展開論述

(2)oracle樹形查詢:

使用start with...connect by子句遞迴查詢,一般用於乙個表維護樹形結構的應用。

建立示例表:

create table tbl_test

(id number,

name varchar2(100 byte),

pid number default 0

);插入測試資料:

insert into tbl_test(id,name,pid) values('1','10','0');

insert into tbl_test(id,name,pid) values('2','11','1');

insert into tbl_test(id,name,pid) values('3','20','0');

insert into tbl_test(id,name,pid) values('4','12','1');

insert into tbl_test(id,name,pid) values('5','121','2');

如圖:

從root往樹末梢遞迴

select * from tbl_test

start with id=1

connect by prior id = pid

如圖:

從末梢往樹root遞迴

select * from tbl_test

start with id=5

connect by prior pid = id

如圖:

行資料結構轉成樹形資料結構

背景 在前後端開發過程中,後端負責提供介面資料,有時前端需要把介面資料轉成其他的格式,本文就用於將具備父子邏輯的行資料轉成樹形結構。如下 function rowdatatotreedata roottreenode,rowdata else i i 1 if roottreenode.childr...

SQLServer樹形資料結構的資料進行資料統計

前言 前幾天朋友問我,關於sqlserver資料庫中對樹形結構的表資料統計問題,需求大致如下 分類表 遞迴資料 a的子分類是b,b的子分類是c 分類關係不間斷,a為第一層,b為第二層,c為第三層 需要統計 每個分類所在的層數 子分類的總數 和 子分類的層數 解決思路 建立示例表結構,如下 分類示例表...

樹形資料結構的級聯查詢(子查詢 遞迴)

說明 當一張表中同時存在id和pid parent id 我們需要用子連線查出其中的級聯關係,並將資料展示為多級列表 樹形資料結構 參考以下查詢的方法。查詢課程型別的樹形結構,多級選單資料 return treedata public ajaxresult gettreedata override ...