//使用孩子表示法來表示乙個樹
typedef
struct treenode
treenode;
//對於鍊錶來說,使用鍊錶的頭節點的指標表示乙個鍊錶
//對於乙個樹來書,使用根節點的指標來表示乙個樹
void treeinit(treenode** proot);
void treepreorder(treenode* root);//先序
void treeinorder(treenode* root);//中序
void treepostorder(treenode* root);//後序
void treelevelorder(treenode* root);//層序
#include
#include
"bin_tree.h"
#include
"seqqueue.h"
//因為層序用到了佇列,所以將前面的佇列**引用進來
#include
#include
treenode* createtreenode(treenodetype value)//建立乙個新的節點
void destroytreenode(treenode* node)
void treeinit(treenode** proot)//初始化
if(*proot ==
null)
*proot =
null;
return;
}
void treepreorder(treenode* root)
//先訪問根結點,再左子樹,再右子樹
printf("%c",root->
data);
treepreorder(root->lchild);
treepreorder(root->rchild);
return;
}void testpreorder()
void treeinorder(treenode* root)
//先遍歷左子樹,再遍歷根節點,最後遍歷右子樹
treeinorder(root->lchild);
printf("%c",root->
data);
treeinorder(root->rchild);
return;
}void testinorder()
void treepostorder(treenode* root)
//先遍歷左子樹,再遍歷右子樹,最後訪問根結點
二叉樹基本操作
tree.h ifndef tree h define tree h include typedef int element 定義二叉樹 typedef struct nodetreenode void preorder treenode root 遞迴前序遍歷 void inorder treen...
二叉樹基本操作
一.二叉樹的定義 二.二叉樹的建立 定義一棵無資料的二叉樹 6 int left size 7 int right size 為了操作簡便,我們定義一棵不需要儲存資料的二叉樹,只要能儲存節點之間的邏輯關係就行,所以用兩個陣列來表示。left i 第i個節點的左子節點的序號 right i 第i個節點...
二叉樹基本操作
include include define maxsize 100 typedef char elemtype typedef struct node btnode void createbtnode btnode b,char str 由str串建立二叉鏈 j ch str j btnode f...