資料結構學習(1) 二叉樹

2021-10-10 13:55:26 字數 1331 閱讀 2873

二叉樹結構

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...