二叉樹結構
public class treenode
}
前序遍歷:根結點,左子樹,右子樹
public static void prenode(treenode node,listtreelist)
}
中序遍歷:左子樹,根結點,右子樹
public static void midnode(treenode node,listtreelist)
}
後序遍歷:左子樹,右子樹,根結點
public static void endnode(treenode node,listtreelist)
}
層次遍歷:借助乙個佇列,先將根結點入隊,然後根結點出隊,每個結點出隊時就訪問該結點,且若其子樹不為空則將其子樹入隊,然後每一層從左往右進行入隊,直到隊空。
public static void levelnode(treenode node,listtreelist)
if(currentnode.right!=null)
} }}
語言:c
二叉樹c語言定義
//二叉樹c語言定義
typedef struct node
*bitree,bitnode;
//二叉樹的複製
void copy(bitree &t,bitree &newt)
newt=new bitnode;
copy(t->lchild,newt->lchild);
copy(t->rchild,newt->rchild);
}
//樹的深度
int depth(bitree t)
//二叉樹中的結點個數
int nodecount(bitree t)
//二叉樹葉子結點個數
int leafcount(bitree t)
//二叉樹度為1的結點
int node_1_count(bitree t)
//輸出從根結點到每個葉子的路徑,遍歷二叉樹,存下每個結點值與陣列長度,遇到根結點則輸出路徑
void path(bitree t,char path,int pathlen)
資料結構學習筆記 二叉樹
樹,非線性表結構 樹有三個概念 高度從下向上數,起點是0 深度從上向下數,起點是0 層數從上向下數,起點是1 每個節點最多兩個叉 有兩種特殊二叉樹 滿二叉樹,除了葉子節點,每個節點都有左右兩個子節點 完全二叉樹,葉子節點都在最底下兩層,最後一層葉子節點都靠左排列,且除了最後一層,其它層節點個數都達到...
資料結構學習之二叉樹
一 為什麼用二叉樹,而不是三個指標域或是根據實際情況指定指標域?比如3,那麼有n個節點就是有3n個指標域,其中邊只有n條,那麼只有n 1個域非空,有2n 1個域為空,浪費空間。而對於2,那麼就只有n 1個域為空。而比如說根據實際來確定指標域,對於實現上是非常困難的。度為2的樹就是二叉樹。斜二叉樹 完...
資料結構 二叉樹 1
二叉樹 構建 二叉樹的構建採用的是先序遍歷,先儲存根節點然後左右節點,用遞迴的思想將所有資料放在樹中。實現 實現了4種訪問方法,先序,中序,後序,和層序的訪問方法都採用遞迴的方式。include include includeusing namespace std templatestruct ro...