二叉樹的建立

2021-08-19 18:25:30 字數 1393 閱讀 6732

鏈式佇列(帶頭結點)####建立乙個如圖所示的二叉樹

一、建立的步驟

1、使用乙個字串存入二叉樹的所有元素,空缺位置使用乙個符號表示(這裡使用#號)

2、遍歷字串,如果字串的元素不為」#」,則建立,按照前序的方法建立(根結點->左結點->右結點),知道把所有元素建立完。

//編譯環境vs2008
bintree.h

#pragma once

#include

#include

#include

#include

typedef

char btdatatype;

typedef

struct btnode

btnode,*pbtnode;

//建立乙個結點

pbtnode buybintreenode(btdatatype data);

//使用者使用的建立二叉樹的函式,不需要傳索引

void createbintree(pbtnode* proot,btdatatype * _array,int size,btdatatype invalid);

//程式設計師使用的建立二叉樹的函式,需要傳索引(陣列的下標0)

void _createbintree(pbtnode* proot,btdatatype * _array,int size,int * index,btdatatype invalid);

bintree.c

#include "bintree.h"

//引數proot表示指向根結點的指標,_array是乙個字元指標,size表示字串字元的個數,invalid是無效字元#

void createbintree(pbtnode* proot,btdatatype * _array,int size,btdatatype invalid)

void _createbintree(pbtnode* proot,btdatatype * _array,int size,int * index,btdatatype invalid)

}pbtnode buybintreenode(btdatatype data)

test.c

#include "bintree.h"

void test();

int main()

void test()

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

由後序遍歷可知,輸入順序是左結點 右結點 子樹根結點 比如輸入如下樹 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 然後要求按照其規則建立二叉樹,題目不難但是卻花費了我不少的時間 第一步,我想到的是需要什麼...