鏈式佇列(帶頭結點)####建立乙個如圖所示的二叉樹
一、建立的步驟
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 然後要求按照其規則建立二叉樹,題目不難但是卻花費了我不少的時間 第一步,我想到的是需要什麼...