樹形資料結構複習 先 中 後序遍歷

2022-07-21 05:27:10 字數 1143 閱讀 4228

1.已知按層遍歷和中序遍歷,匯出先序遍歷;

樣例:中序遍歷:dbafegc

按層遍歷:abcdefg

演算法:掃瞄按層遍歷,按層遍歷的實質是按照節點深度,從左到右對同深度節點進行排序;

因此,可以掃瞄整個按層遍歷,與當前中序遍歷所代表的樹進行匹配!

在中序遍歷中掃瞄到的位於按層遍歷中的最前面的節點,就是當前子樹中,深度最小的節點,

也就是,當前子樹的根節點可以確定。按照先左子樹後右子樹的順序進行遍歷,原因是

按層遍歷和中序遍歷的順序都是先左後右。

code:

#include

#include

#include

using namespace std;

char a[100],b[100];

int lena,lenb;

inline void dfs(int l1,int r1,int l2,int r2)

if(flag==1)

break;

}if(flag==1)

break;

}if(j>l1)

dfs(l1,j-1,0,lenb);

if(j>a>>b;

lena=strlen(a)-1;

lenb=strlen(b)-1;

dfs(0,lena,0,lenb);

return 0;

}2.已知中序遍歷,後序遍歷,求先序遍歷:

掃瞄後序遍歷序列,最後乙個元素為當前樹的根節點,對應到中序遍歷中,將中序遍歷分為左右子樹,分別進行遞迴操作!;

code:

#include

#include

#include

using namespace std;

char a[100],b[100];

int lena,lenb;//a--->mid,b--->last

inline void dfs(int l1,int r1,int l2,int r2)

if(flag==1)

break;

}if(l1>a>>b;

lena=strlen(a),lenb=strlen(b);

dfs(0,lena-1,0,lenb-1);

return 0;

}

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

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

資料結構 樹的遍歷(先序,中序,後序,層次)

通過先序方式建立樹,通過簡單的遞迴就可以實現先序,中序,後序遍歷。層次遍歷還需要用到佇列,當某個節點出隊時,它的左右結點要入隊 如果有的話 include include using namespace std typedef struct node node 通過先序方式建立樹,表示空 a b c...

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

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