二叉樹的基本操作(C )

2021-06-02 03:28:41 字數 2367 閱讀 5660

#include

#include

#include

using namespace std;

typedef char t;      //為本程式定義所使用的具體資料型別

struct btreenode

;//btreenode

class btree

;//btree

////建立二叉樹函式

//函式功能:建立一棵二叉鏈式結構

//函式引數:無

//引數返回值:

//       current:二叉鏈式結構結點類指標

btreenode * btree::createbtree()

}//createbtree

void btree::create()

//create

////求樹高函式

//函式功能:計算所建立的二叉樹的高度

//函式引數:

//     p:二叉鏈式結構結點類指標

//引數返回值:

//     max:表示二叉樹高度的整數

int btree::depth(btreenode *p)

}//depth

int btree::depth()

//depth

////求葉子結點個數函式

//函式功能:計算二叉樹的葉子結點的個數

//函式引數:

//     p:二叉鏈式結構結點類指標

//引數返回值:無

int btree::number(btreenode *p)

}//number

int btree::number()

//number

////前序遞迴遍歷函式

//函式功能:用前序遞迴遍歷演算法訪問二叉樹

//函式引數:

//     p:二叉鏈式結構結點類指標

//     visit:函式指標

//引數返回值:無

void btree::preorder(btreenode *p,void visit(btreenode *p))    //void visit(btreenode *p)為函式指標

}//preorder

void btree::preorder(void visit(btreenode *p))

if(!s.empty())

//if

}//while

}//preorder1

////中序遞迴遍歷函式

//函式功能:用中序遞迴遍歷演算法訪問二叉樹

//函式引數:

//     p:二叉鏈式結構結點類指標

//     visit:函式指標

//引數返回值:無

void btree::inorder(btreenode *p,void visit(btreenode *p))

}//inorder

void btree::inorder(void visit(btreenode *p))

if(!s.empty())

//if

}//while

}//inorder1

////後序遞迴遍歷函式

//函式功能:用後序遞迴遍歷演算法訪問二叉樹

//函式引數:

//     p:二叉鏈式結構結點類指標

//     visit:函式指標

//引數返回值:無

void btree::postorder(btreenode *p,void visit(btreenode *p))

}//postorder

void btree::postorder(void visit(btreenode *p))

else

else

}//else

}//while

}//postorder1

////層次遍歷函式

//函式功能:用層次遍歷演算法遍歷二叉樹

//函式引數:

//     visit:函式指標

//引數返回值:無

void btree::layerorder(void visit(btreenode *p))

//while

}//layerorder

////輸出函式

//函式功能:把二叉樹輸出

//函式引數:

//     p:二叉鏈式結構結點類指標

//引數返回值:無

void print(btreenode *p)

//print

////主函式

//引數返回值:無

void main()

// switch

} // while

}// main

C 二叉樹的基本操作

c 實現二叉樹的基本操作 包括 新增節點 刪除節點 前序遍歷 中序遍歷 後續遍歷 層序遍歷 最大值 最小值 二叉樹的高度 標頭檔案 include class tree linknode head 表頭節點 新增節點 void addtreenode linknode node,linknode n...

C 二叉樹的基本操作

對於一棵二叉樹,有三種基本遍歷方式 1 前序遍歷 dlr 先訪問根結點,然後遍歷左子樹,最後遍歷右子樹。歸結為 從根結點一直從左子樹向下直到葉結點,然後返回到葉結點的父親,再從其父結點的右子樹向下。2 中序遍歷 ldr 先中序遍歷左子樹,然後訪問根結點,最後遍歷右子樹。3 後序遍歷 lrd 先後序遍...

二叉樹基本操作

tree.h ifndef tree h define tree h include typedef int element 定義二叉樹 typedef struct nodetreenode void preorder treenode root 遞迴前序遍歷 void inorder treen...