




已閱讀5頁,還剩174頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
6.4 樹和森林,6.4.1 樹的存儲結(jié)構(gòu) 6.4.2 森林與二叉樹的轉(zhuǎn)換 6.4.3 樹和森林的遍歷,6.4.1 樹的存儲結(jié)構(gòu),雙親表示法 孩子表示法 孩子兄弟表示法,雙親表示法,數(shù)組下標(biāo),找雙親易,找孩子難,雙親表示法,#define MAX_TREE_SIZE 100 typedef struct PTNode TElemType data; int parent; /雙親位置域 PTNode; typedef struct PTNode nodesMAX_TREE_SIZE; int n; /結(jié)點(diǎn)數(shù) PTree;,孩子表示法,data,child1,child2,childd,data,child1,child2,childd,degree,n個結(jié)點(diǎn)度為k的樹中有 個空鏈域,n(k-1)+1,nk-(n-1)=,節(jié)省空間,但操作不便,孩子表示法,孩子鏈表,找孩子易 找雙親難,孩子表示法,A,B,C,D,R,E,F,G,H,K,0,1,2,3,4,5,6,7,8,9,4,4,4,0,-1,0,2,6,6,6,孩子鏈表,雙親位置,找孩子易 找雙親也易,孩子表示法,typedef struct CTNode/孩子結(jié)點(diǎn) int child; struct CTNode *next; *ChildPtr; Typedef struct TElemType data; ChildPtr firstchild; /孩子鏈表頭指針 CTBox; typedef struct CTBox nodesMAX_TREE_SIZE; int n, r; /結(jié)點(diǎn)數(shù)和根的位置 CTree;,孩子兄弟表示法,typedef struct CSNode TElemType data; struct CSNode *firstchild; /指向結(jié)點(diǎn)的第1個孩子 struct CSNode *nextsibling; /指向第1個孩子的右兄第 CSNode, *CSTree;,孩子兄弟表示法,易于實(shí)現(xiàn)各種操作,6.4.2 森林與二叉樹的轉(zhuǎn)換,typedef struct CSNode TElemType data; struct CSNode *firstchild,*nextsibling; CSNode,*CSTree;,typedef struct BiNode TElemType data; struct BiNode *lchild,*rchild; BiNode,*BiTree;,樹的孩子兄弟表示,二叉樹的二叉鏈表示,樹,二叉樹,對應(yīng),森林轉(zhuǎn)換成二叉樹,二叉樹轉(zhuǎn)換成森林,6.4.3 樹和森林的遍歷,樹的遍歷 森林的遍歷,樹的遍歷,先根(次序)遍歷樹 (1)訪問樹的根結(jié)點(diǎn) (2)依次先根遍歷樹的每棵子樹,A B C D E,后根(次序)遍歷樹 (1)依次后根遍歷樹的每棵子樹 (2)訪問樹的根結(jié)點(diǎn),B D C E A,1森林中第一棵樹的根結(jié)點(diǎn);,2森林中第一棵樹的子樹森林;,3森林中其它樹構(gòu)成的森林。,森林由三部分構(gòu)成:,森林的遍歷,A,B,C,D,E,F,G,H,I,J,森林的遍歷,先序遍歷森林 若森林為非空,則按下述規(guī)則遍歷之 (1)訪問森林中第一棵樹的根結(jié)點(diǎn) (2)先序遍歷森林中第一棵樹的子樹森林; (3)先序遍歷除去第一棵樹之后剩余的樹構(gòu)成的森林,森林的遍歷,中序遍歷森林 若森林為非空,則按下述規(guī)則遍歷之 (1)中序遍歷森林中第一棵樹的子樹森林; (2)訪問森林中第一棵樹的根結(jié)點(diǎn) (3)中序遍歷除去第一棵樹之后剩余的樹 構(gòu)成的森林,森林的遍歷,先序序列,A B C D E F G H I J,中序序列,B C D A F E H J I G,樹的遍歷和二叉樹遍歷的對應(yīng)關(guān)系 ?,先根遍歷,后根遍歷,樹,二叉樹,森林,先序遍歷,先序遍歷,中序遍歷,中序遍歷,樹的遍歷及應(yīng)用,孩子兄弟表示 樹的遍歷算法 求樹的深度 求樹的葉子結(jié)點(diǎn)數(shù) 建立樹的孩子兄弟鏈表存儲結(jié)構(gòu) 孩子鏈表結(jié)構(gòu) 孩子鏈表結(jié)構(gòu)的遍歷 根據(jù)孩子鏈表建立孩子兄弟結(jié)構(gòu),R,A,D,B,E,F,H,K,C,G,樹的先根(次序)遍歷,R,A,D,B,E,F,H,K,C,G,Status PreOrderTraverseTree(CSTree T, Status(*Visit)(TElemType e) if(!T) return OK; /若T為空樹,則直接返回 Visit(T-data);/訪問根結(jié)點(diǎn) PreOrderTraverseTree(T-firstchild,Visit); PreOrderTraverseTree(T-nextsibling,Visit) ; return OK; /PreOrderTraverse,樹的先根(次序)遍歷,R,A,D,B,E,F,H,K,C,G,p=T-firstchild,p=p-nextsibling,for(p=T-firstchild; p ; p=p-nextsibling) visit(p-firstchild);,樹的先根(次序)遍歷,R,A,D,B,E,F,H,K,C,G,Status PreOrderTraverseTree1(CSTree T, Status(*Visit)(TElemType e) if(!T) return OK; /若T為空樹,則直接返回 Visit(T-data);/訪問根結(jié)點(diǎn) for(p=T-firstchild; p; p=p-nextsibling) PreOrderTraverseTree1(p-firstchild,Visit); return OK; /PreOrderTraverseTree1,R,A,D,B,E,F,H,K,C,G,樹的后根(次序)遍歷,R,A,D,B,E,F,H,K,C,G,Status PostOrderTraverseTree(CSTree T, Status(*Visit)(TElemType e) if(!T) return OK; /若T為空樹,則直接返回 PostOrderTraverseTree(T-firstchild,Visit); PostOrderTraverseTree(T-nextsibling,Visit) ; Visit(T-data);/訪問根結(jié)點(diǎn) return OK; /PostOrderTraverseTree,樹的后根(次序)遍歷,R,A,D,B,E,F,H,K,C,G,Status PostOrderTraverseTree1(CSTree T, Status(*Visit)(TElemType e) if(!T) return OK; /若T為空樹,則直接返回 for(p=T-firstchild; p; p=p-nextsibling) PostOrderTraverseTree1(p-firstchild,Visit); Visit(T-data);/訪問根結(jié)點(diǎn) return OK; /PostOrderTraverseTree1,R,A,D,B,E,F,H,K,C,G,求樹的深度,Height(T)=0 T=NULL Height(T)=max(Height(T-firstchild)+1, Height(T-nextsibling) 其它,求樹的深度,int Height_Tree(CSTree T) int h1, h2; if(!T) return 0; /若T為空樹 h1=Height_BiTree(T-firstchild); /求左子樹的高度 h2=Height_BiTree(T-nextsibling);/求右子樹的高度 return (max(h1+1), h2); /Height_BiTree,R,A,D,B,E,F,H,K,C,G,求樹的葉子結(jié)點(diǎn)個數(shù),LeafCount(T)=0 T=NULL LeafCount(T)=1 T-firstlchild=NULL LeafCount(T)=LeafCount(T-firstlchild) + LeafCount(T-nextsibling) 其它,求樹的葉子結(jié)點(diǎn)個數(shù),Int LeafCount_Tree(CSTree T) int num1, num2; if(!T) return 0; /若T為空樹 if(T-firstchild=NULL) return 1; /T為葉子結(jié)點(diǎn) num1=LeafCount_BiTree(T-firstchild); /求左子樹的葉子數(shù) num2=LeafCount_BiTree(T-nextsibling); /求右子樹的葉子數(shù) return (num1 + num2); /LeafCount_Tree,count=LeafCount_Tree(root),主調(diào)用,建立樹的孩子兄弟鏈表存儲結(jié)構(gòu),根據(jù)先根遍歷的擴(kuò)展序列建立 根據(jù)兩種遍歷序列建立(先根和后根) 根據(jù)廣義表表達(dá)式建立,R,B,A,C,D,E,F,R,A,D,B,E,F,C,孩子兄弟鏈表的建立(1),R A D E B C F ,先序遍歷的擴(kuò)展序列,R,B,A,C,D,E,F,R,A,D,B,E,F,C,Status CreateBiTree(CSTree /CreateBiTree,孩子兄弟鏈表的建立(1),R A D E B C F ,假設(shè)一棵樹的先根序列為RADEBCF ,后根序序列為. DEABFCR, 請畫出該樹,R A D E B C F,D E A B F C R,先根序列,后根序列,孩子兄弟鏈表的建立(2),Status CreatCSTree(CSTree ,孩子兄弟鏈表的建立(3),R,B,A,C,D,E,F,R,A,D,B,E,F,C,S=(R(A(D, E), B, C(F),廣義表表達(dá)式,(R(A(D, E), B, C(F),R,A,D,B,E,F,C,Status CreateCSTree(CSTree ,R,A,D,B,E,F,C,S=(R(A(D, E), B, C(F),Status CreateCSTree(CSTree ,1,S(1)=(R(A(D, E), B, C(F),root(1)=? hsub(1)=? tsub(1)=?,Status CreateCSTree(CSTree ,1,S(1)=(R(A(D, E), B, C(F),root(1)=? hsub(1)=? tsub(1)=?,Status CreateCSTree(CSTree ,1,S(1)=(R(A(D, E), B, C(F),root(1)=? hsub(1)=? tsub(1)=?,Status CreateCSTree(CSTree ,S(1)=(R(A(D, E), B, C(F),1,root(1)=R hsub(1)=(A(D, E), B, C(F) tsub(1)=( ),Status CreateCSTree(CSTree ,S(1)=(R(A(D, E), B, C(F),1,root(1)=R hsub(1)=(A(D, E), B, C(F) tsub(1)=( ),Status CreateCSTree(CSTree ,S(1)=(R(A(D, E), B, C(F),1,root(1)=R hsub(1)=(A(D, E), B, C(F) tsub(1)=( ),R,T(1),Status CreateCSTree(CSTree ,S(1)=(R(A(D, E), B, C(F),1,root(1)=R hsub(1)=(A(D, E), B, C(F) tsub(1)=( ),R,T(1),Status CreateCSTree(CSTree ,S(2)= (A(D, E), B, C(F),2,root(2)=? hsub(2)=? tsub(2)=?,R,T(1),Status CreateCSTree(CSTree ,S(2)= (A(D, E), B, C(F),2,root(2)=? hsub(2)=? tsub(2)=?,R,T(1),Status CreateCSTree(CSTree ,S(2)= (A(D, E), B, C(F),2,root(2)=? hsub(2)=? tsub(2)=?,R,T(1),Status CreateCSTree(CSTree ,S(2)= (A(D, E), B, C(F),2,root(2)=A hsub(2)=(D, E) tsub(2)=(B, C(F),R,T(1),Status CreateCSTree(CSTree ,S(2)= (A(D, E), B, C(F),2,root(2)=A hsub(2)=(D, E) tsub(2)=(B, C(F),R,T(1),Status CreateCSTree(CSTree ,S(2)= (A(D, E), B, C(F),2,root(2)=A hsub(2)=(D, E) tsub(2)=(B, C(F),R,T(1),A,T(2),Status CreateCSTree(CSTree ,S(2)= (A(D, E), B, C(F),2,root(2)=A hsub(2)=(D, E) tsub(2)=(B, C(F),R,T(1),A,T(2),Status CreateCSTree(CSTree ,S(3)= (D, E),3,root(3)=? hsub(3)=? tsub(3)=?,R,T(1),A,T(2),Status CreateCSTree(CSTree ,S(3)= (D, E),3,root(3)=? hsub(3)=? tsub(3)=?,R,T(1),A,T(2),Status CreateCSTree(CSTree ,S(3)= (D, E),3,root(3)=? hsub(3)=? tsub(3)=?,R,T(1),A,T(2),Status CreateCSTree(CSTree ,S(3)= (D, E),3,root(3)=D hsub(3)=( ) tsub(3)=(E),R,T(1),A,T(2),Status CreateCSTree(CSTree ,S(3)= (D, E),3,root(3)=D hsub(3)=( ) tsub(3)=(E),R,T(1),A,T(2),Status CreateCSTree(CSTree ,S(3)= (D, E),3,root(3)=D hsub(3)=( ) tsub(3)=(E),R,T(1),A,T(2),D,T(3),Status CreateCSTree(CSTree ,S(3)= (D, E),3,root(3)=D hsub(3)=( ) tsub(3)=(E),R,T(1),A,T(2),D,T(3),Status CreateCSTree(CSTree ,S(4)= ( ),4,root(4)=? hsub(4)=? tsub(4)=?,R,T(1),A,T(2),D,T(3),Status CreateCSTree(CSTree ,S(4)= ( ),4,root(4)=? hsub(4)=? tsub(4)=?,R,T(1),A,T(2),D,T(3),Status CreateCSTree(CSTree ,S(4)= ( ),4,root(4)=? hsub(4)=? tsub(4)=?,R,T(1),A,T(2),D,T(3),T(4)=NULL,Status CreateCSTree(CSTree ,3,R,T(1),A,T(2),D,T(3),S(3)= (D, E),root(3)=D hsub(3)=( ) tsub(3)=(E),Status CreateCSTree(CSTree ,4,R,T(1),A,T(2),D,T(3),S(4)= (E),root(4)=? hsub(4)=? tsub(4)=?,Status CreateCSTree(CSTree ,4,R,T(1),A,T(2),D,T(3),S(4)= (E),root(4)=? hsub(4)=? tsub(4)=?,Status CreateCSTree(CSTree ,4,R,T(1),A,T(2),D,T(3),S(4)= (E),root(4)=? hsub(4)=? tsub(4)=?,Status CreateCSTree(CSTree ,4,R,T(1),A,T(2),D,T(3),S(4)= (E),root(4)=E hsub(4)=( ) tsub(4)=( ),Status CreateCSTree(CSTree ,4,R,T(1),A,T(2),D,T(3),S(4)= (E),root(4)=E hsub(4)=( ) tsub(4)=( ),Status CreateCSTree(CSTree ,4,R,T(1),A,T(2),D,T(3),S(4)= (E),root(4)=E hsub(4)=( ) tsub(4)=( ),E,T(4),Status CreateCSTree(CSTree ,4,R,T(1),A,T(2),D,T(3),S(4)= (E),root(4)=E hsub(4)=( ) tsub(4)=( ),E,T(4),0,1,2,3,4,5,6,7,1,2,3,4,5,6,7,樹的孩子表示法,A,B,C,F,H,D,E,G,0,1,2,3,4,5,6,7,1,2,3,4,5,6,7,樹的孩子表示法,typedef struct CTNode/孩子結(jié)點(diǎn) int child; struct CTNode *next; *ChildPtr; Typedef struct TElemType data; ChildPtr firstchild; /孩子鏈表頭指針 CTBox; typedef struct CTBox nodesMAX_TREE_SIZE; int n, r; /結(jié)點(diǎn)數(shù)和根的位置 PTree;,0,1,2,3,4,5,6,7,1,2,3,4,5,6,7,void CTTree_DFS(CTree T, int v0, Status(*Visit)(TElemType e) /樹的孩子鏈表的先根遍歷 Visit(T.nodesv0.data) p=T.nodesv0.firstchild; while(p) w=p-child; CTTree_DFS(T, w, Visit); p=p-next; ,樹的先根遍歷,A,B,F,H,D,E,G,C,0,1,2,3,4,5,6,7,1,2,3,4,5,6,7,A,B,F,H,D,E,G,C,void CTTree_DFS(CTree T, int v0, Status(*Visit)(TElemType e) /樹的孩子鏈表的先根遍歷 Visit(T.nodesv0.data) p=T.nodesv0.firstchild; while(p) w=p-child; CTTree_DFS(T, w, Visit); p=p-next; ,1,0,1,2,3,4,5,6,7,1,2,3,4,5,6,7,A,B,F,H,D,E,G,C,void CTTree_DFS(CTree T, int v0, Status(*Visit)(TElemType e) /樹的孩子鏈表的先根遍歷 Visit(T.nodesv0.data) p=T.nodesv0.firstchild; while(p) w=p-child; CTTree_DFS(T, w, Visit); p=p-next; ,1,0,1,2,3,4,5,6,7,1,2,3,4,5,6,7,A,B,F,H,D,E,G,C,v0(1),void CTTree_DFS(CTree T, int v0, Status(*Visit)(TElemType e) /樹的孩子鏈表的先根遍歷 Visit(T.nodesv0.data) p=T.nodesv0.firstchild; while(p) w=p-child; CTTree_DFS(T, w, Visit); p=p-next; ,1,0,1,2,3,4,5,6,7,1,2,3,4,5,6,7,A,B,F,H,D,E,G,C,v0(1),void CTTree_DFS(CTree T, int v0, Status(*Visit)(TElemType e) /樹的孩子鏈表的先根遍歷 Visit(T.nodesv0.data) p=T.nodesv0.firstchild; while(p) w=p-child; CTTree_DFS(T, w, Visit); p=p-next; ,1,p(1),0,1,2,3,4,5,6,7,A,B,F,H,D,E,G,C,v0(1),void CTTree_DFS(CTree T, int v0, Status(*Visit)(TElemType e) /樹的孩子鏈表的先根遍歷 Visit(T.nodesv0.data) p=T.nodesv0.firstchild; while(p) w=p-child; CTTree_DFS(T, w, Visit); p=p-next; ,1,p(1),1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,A,B,F,H,D,E,G,C,v0(1),void CTTree_DFS(CTree T, int v0, Status(*Visit)(TElemType e) /樹的孩子鏈表的先根遍歷 Visit(T.nodesv0.data) p=T.nodesv0.firstchild; while(p) w=p-child; CTTree_DFS(T, w, Visit); p=p-next; ,1,p(1),1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,A,B,F,H,D,E,G,C,v0(1),void CTTree_DFS(CTree T, int v0, Status(*Visit)(TElemType e) /樹的孩子鏈表的先根遍歷 Visit(T.nodesv0.data) p=T.nodesv0.firstchild; while(p) w=p-child; CTTree_DFS(T, w, Visit); p=p-next; ,2,p(1),1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,A,B,F,H,D,E,G,C,v0(1),void CTTree_DFS(CTree T, int v0, Status(*Visit)(TElemType e) /樹的孩子鏈表的先根遍歷 Visit(T.nodesv0.data) p=T.nodesv0.firstchild; while(p) w=p-child; CTTree_DFS(T, w, Visit); p=p-next; ,2,p(1),1,2,3,4,5,6,7,v0(2),0,1,2,3,4,5,6,7,A,B,F,H,D,E,G,C,v0(1),void CTTree_DFS(CTree T, int v0, Status(*Visit)(TElemType e) /樹的孩子鏈表的先根遍歷 Visit(T.nodesv0.data) p=T.nodesv0.firstchild; while(p) w=p-child; CTTree_DFS(T, w, Visit); p=p-next; ,2,p(1),1,2,3,4,5,6,7,v0(2),0,1,2,3,4,5,6,7,A,B,F,H,D,E,G,C,v0(1),void CTTree_DFS(CTree T, int v0, Status(*Visit)(TElemType e) /樹的孩子鏈表的先根遍歷 Visit(T.nodesv0.data) p=T.nodesv0.firstchild; while(p) w=p-child; CTTree_DFS(T, w, Visit); p=p-next; ,2,p(1),1,2,3,4,5,6,7,v0(2),p(2),0,1,2,3,4,5,6,7,A,B,F,H,D,E,G,C,v0(1),void CTTree_DFS(CTree T, int v0, Status(*Visit)(TElemType e) /樹的孩子鏈表的先根遍歷 Visit(T.nodesv0.data) p=T.nodesv0.firstchild; while(p) w=p-child; CTTree_DFS(T, w, Visit); p=p-next; ,2,p(1),1,2,3,4,5,6,7,v0(2),p(2),0,1,2,3,4,5,6,7,A,B,F,H,D,E,G,C,v0(1),void CTTree_DFS(CTree T, int v0, Status(*Visit)(TElemType e) /樹的孩子鏈表的先根遍歷 Visit(T.nodesv0.data) p=T.nodesv0.firstchild; while(p) w=p-child; CTTree_DFS(T, w, Visit); p=p-next; ,2,p(1),1,2,3,4,5,6,7,v0(2),p(2),0,1,2,3,4,5,6,7,A,B,F,H,D,E,G,C,v0(1),void CTTree_DFS(CTree T, int v0, Status(*Visit)(TElemType e) /樹的孩子鏈表的先根遍歷 Visit(T.nodesv0.data) p=T.nodesv0.firstchild; while(p) w=p-child; CTTree_DFS(T, w, Visit); p=p-next; ,3,p(1),1,2,3,4,5,6,7,v0(2),p(2),0,1,2,3,4,5,6,7,A,B,F,H,D,E,G,C,v0(1),void CTTree_DFS(CTree T, int v0, Status(*Visit)(TElemType e) /樹的孩子鏈表的先根遍歷 Visit(T.nodesv0.data) p=T.nodesv0.firstchild; while(p) w=p-child; CTTree_DFS(T, w, Visit); p=p-next; ,3,p(1),1,2,3,4,5,6,7,v0(2),p(2),v0(3),0,1,2,3,4,5,6,7,A,B,F,H,D,E,G,C,v0(1),void CTTree_DFS(CTree T, int v0, Status(*Visit)(TElemType e) /樹的孩子鏈表的先根遍歷 Visit(T.nodesv0.data) p=T.nodesv0.firstchild; while(p) w=p-child; CTTree_DFS(T, w, Visit); p=p-next; ,3,p(1),1,2,3,4,5,6,7,v0(2),p(2),v0(3),p(3)=NULL,0,1,2,3,4,5,6,7,A,B,F,H,D,E,G,C,v0(1),void CTTree_DFS(CTree T, int v0, Status(*Visit)(TElemType e) /樹的孩子鏈表的先根遍歷 Visit(T.nodesv0.data) p=T.nodesv0.firstchild; while(p) w=p-child; CTTree_DFS(T, w, Visit); p=p-next; ,3,p(1),1,2,3,4,5,6,7,v0(2),p(2),v0(3),p(3)=NULL,0,1,2,3,4,5,6,7,A,B,F,H,D,E,G,C,v0(1),void CTTree_DFS(CTree T, int v0, Status(*Visit)(TElemType e) /樹的孩子鏈表的先根遍歷 Visit(T.nodesv0.data) p=T.nodesv0.firstchild; while(p) w=p-child; CTTree_DFS(T, w, Visit); p=p-next; ,3,p(1),1,2,3,4,5,6,7,v0(2),p(2),v0(3),p(3)=NULL,0,1,2,3,4,5,6,7,A,B,F,H,D,E,G,C,v0(1),void CTTree_DFS(CTree T, int v0, Status(*Visit)(TElemType e) /樹的孩子鏈表的先根遍歷 Visit(T.nodesv0.data) p=T.nodesv0.firstchild; while(p) w=p-child; CTTree_DFS(T, w, Visit); p=p-next; ,2,p(1),1,2,3,4,5,6,7,v0(2),p(2),0,1,2,3,4,5,6,7,A,B,F,H,D,E,G,C,v0(1),void CTTree_DFS(CTree T, int v0, Status(*Visit)(TElemType e) /樹的孩子鏈表的先根遍歷 Visit(T.nodesv0.data) p=T.nodesv0.firstchild; while(p) w=p-child; CTTree_DFS(T, w, Visit); p=p-next; ,2,p(1),1,2,3,4,5,6,7,v0(2),p(2),0,1,2,3,4,5,6,7,A,B,F,H,D,E,G,C,v0(1),void CTTree_DFS(CTree T, int v0, Status(*Visit)(TElemType e) /樹的孩子鏈表的先根遍歷 Visit(T.nodesv0.data) p=T.nodesv0.firstchild; while(p) w=p-child; CTTree_DFS(T, w, Visit); p=p-next; ,2,p(1),1,2,3,4,5,6,7,v0(2),p(2),0,1,2,3,4,5,6,7,A,B,F,H,D,E,G,C,v0(1),void CTTree_DFS(CTree T, int v0, Status(*Visit)(TElemType e) /樹的孩子鏈表的先根遍歷 Visit(T.nodesv0.data) p=T.nodesv0.firstchild; while(p) w=p-child; CTTree_DFS(T, w, Visit); p=p-next; ,2,p(1),1,2,3,4,5,6,7,v0(2),p(2),0,1,2,3,4,5,6,7,A,B,F,H,D,E,G,C,v0(1),void CTTree_DFS(CTree T, int v0, Status(*Visit)(TElemType e) /樹的孩子鏈表的先根遍歷 Visit(T.nodesv0.data) p=T.nodesv0.firstchild; while(p) w=p-child; CTTree_DFS(T, w, Visit); p=p-next; ,3,p(1),1,2,3,4,5,6,7,v0(2),p(2),0,1,2,3,4,5,6,7,A,B,F,H,D,E,G,C,v0(1),void CTTree_DFS(CTree T, int v0, Status(*Visit)(TElemType e) /樹的孩子鏈表的先根遍歷 Visit(T.nodesv0.data) p=T.nodesv0.firstchild; while(p) w=p-child; CTTree_DFS(T, w, Visit); p=p-next; ,3,p(1),1,2,3,4,5,6,7,v0(2),p(2),v0(3),0,1,2,3,4,5,6,7,A,B,F,H,D,E,G,C,v0(1),void CTTree_DFS(CTree T, int v0, Status(*Visit)(TElemType e) /樹的孩子鏈表的先根遍歷 Visit(T.nodesv0.data) p=T.nodesv0.firstchild; while(p) w=p-child; CTTree_DFS(T, w, Visit); p=p-next; ,3,p(1),1,2,3,4,5,6,7,v0(2),p(2),v0(3),0,1,2,3,4,5,6,7,A,B,F,H,D,E,G,C,v0(1),void CTTree_DFS(CTree T, int v0, Status(*Visit)(TElemType e) /樹的孩子鏈表的先根遍歷 Visit(T.nodesv0.data) p=T.nodesv0.firstchild; while(p) w=p-child; CTTree_DFS(T, w, Visit); p=p-next; ,3,p(1),1,2,3,4,5,6,7,v0(2),p(2),v0(3),p(3),0,1,2,3,4,5,6,7,A,B,F,H,D,E,G,C,v0(1),void CTTree_DFS(CTree T, int v0, Status(*Visit)(TElemType e) /樹的孩子鏈表的先根遍歷 Visit(T.nodesv0.data) p=T.nodesv0.firstchild; while(p) w=p-child; CTTree_DFS(T, w, Visit); p=p-next; ,3,p(1),1,2,3,4,5,6,7,v0(2),p(2),v0(3),p(3),0,1,2,3,4,5,6,7,A,B,F,H,D,E,G,C,v0(1),void CTTree_DFS(CTree T, int v0, Status(*Visit)(TElemType e) /樹的孩子鏈表的先根遍歷 Visit(T.nodesv0.data) p=T.nodesv0.firstchild; while(p) w=p-child; CTTree_DFS(T, w, Visit); p=p-next; ,3,p(1),1,2,3,4,5,6,7,v0(2),p(2),v0(3),p(3),0,1,2,3,4,5,6,7,A,B,F,H,D,E,G,C,v0(1),void CTTree_DFS(CTree T, int v0, Status(*Visit)(TElemType e) /樹的孩子鏈表的先根遍歷 Visit(T.nodesv0.data) p=T.nodesv0.firstchild; while(p) w=p-child; CTTree_DFS(T, w, Visit); p=p-next; ,4,p(1),1,2,3,4,5,6,7,v0(2),p(2),v0(3),p(3),0,1,2,3,4,5,6,7,A,B,F,H,D,E,G,C,v0(1),void C
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 定陶區(qū)期中數(shù)學(xué)試卷
- 拱墅區(qū)9年級期末數(shù)學(xué)試卷
- 二年級期末江蘇數(shù)學(xué)試卷
- 福建一年級數(shù)學(xué)試卷
- 高中一上學(xué)期數(shù)學(xué)試卷
- 部編版五年級語文下冊第三單元大單元教學(xué)設(shè)計(jì)
- 2025年首都醫(yī)科大學(xué)附屬北京同仁醫(yī)院派遣制司機(jī)招聘1人(二)筆試歷年專業(yè)考點(diǎn)(難、易錯點(diǎn))附帶答案詳解
- 2025至2030磁控健身車行業(yè)市場發(fā)展分析及發(fā)展趨勢與投資管理策略報(bào)告
- 2025至2030齒間刷行業(yè)市場深度研究與戰(zhàn)略咨詢分析報(bào)告
- 2024年隴南兩當(dāng)縣消防救援大隊(duì)招聘筆試真題
- 高中地理選擇性必修二知識點(diǎn)
- 《工程建設(shè)標(biāo)準(zhǔn)強(qiáng)制性條文電力工程部分2023年版》
- HIV-1感染者的藥物依從性與治療效果
- 2024年第九屆全國中小學(xué)“學(xué)憲法、講憲法”競賽題庫及答案
- 血透患者日常注意事項(xiàng)
- 夏令營家長知情同意書
- 門診護(hù)理工作禮儀
- TCALC 003-2023 手術(shù)室患者人文關(guān)懷管理規(guī)范
- 浙江民宿行業(yè)分析
- 眼科視光中心可行性方案
- 運(yùn)輸貨物保險(xiǎn)合同通用范本
評論
0/150
提交評論