二叉樹的建立方法,你都懂嗎?

2021-07-30 01:17:27 字數 1357 閱讀 1914

二叉樹的建立方法,你都懂嗎?

二叉樹是很簡單,但是你真的會所有的建樹方法嗎?這裡將會給你提供7種建樹方法。

第一種:就是只利用先序建樹,遞迴建樹(但是先序必須是完整的,用#表示null)

第二種:利用先序傳引用建樹。

第三種:利用先序和二級指標建樹。

第四種:給定某乙個節點(這個節點是引用傳進去)左右孩子。

第五種:給定某乙個節點(這個節點是指標傳進去)左右孩子。

第六種:用先序和中序建樹

第七種:用中序和後序建樹。

這裡有基本的二叉樹的操作:

下面只是簡單的**:

第一種:

//建立乙個二叉樹

//只給乙個先序和null來建立乙個二叉樹

btnode *createtree()

return p;

}

第二種:

//傳引用建樹

btnode *createtree1(char *&str)

return p;

}

第三種:

//引用轉換成二級指標建樹

btnode *createtree2(char ** const str)

return p;

}

第四種

//給乙個結點建立左右孩子

void createtree3(btnode *&p,char *&str)

}

第五種:

//利用指標

void createtree4(btnode ** const p,char *&str)

}

第六種:

int findvalue(char *is,elemtype p,int n)

return -1;

}//根據前序和中序建立乙個二叉樹

btnode *createpm(char *pr,char *is,int n)

return tmp;

}

btnode *createtreepm(char *pr,char *is,int n)

第七種:

btnode *createml(char *mi,char *la,int n)

return tmp;

}btnode *createtreeml(char *mi,char *la,int n)

期待更多的方法。

建立二叉樹 後序建立二叉樹

由後序遍歷可知,輸入順序是左結點 右結點 子樹根結點 比如輸入如下樹 ab cde 輸入序列為 e d b c a 思路 使用棧,對左結點和右結點進行壓棧 1.當輸入遇到非 且棧中元素大於等於2,則可以確定乙個小三角樹形,並將這個樹根作為下乙個小三角樹形的乙個子節點 2.當輸入遇到非 但棧中元素小於...

二叉樹的建立 遍歷1 建立二叉樹

談二叉樹,如果二叉樹都沒有正確的建立出來,那豈不是紙上談兵!括號表示式 表示方法 1.括號 括號內的東西是括號前的元素的孩子 2.逗號 逗號是為了區分左右孩子 演算法分析 給出乙個如上的括號表示式 a b d g e,f 再利用棧這個資料結構,分析一下 掃瞄整個括號表示的字串,這個字串中只有四種字元...

建立二叉樹

今天看到了乙個資料結構的筆試題目,他要求寫出建立二叉樹的程式。我想練習練習,所以想了一下其大致的思路,記錄如下 題目的要求很簡單,給出乙個字串序列 比如說a b d,e h j,k l,m n c f,g i 然後要求按照其規則建立二叉樹,題目不難但是卻花費了我不少的時間 第一步,我想到的是需要什麼...