C 實現二叉樹建立(先序建表)及遍歷例項

2021-09-26 10:25:46 字數 1549 閱讀 3730

本**主要利用c++實現二叉樹先序建表,及先序、後序、中序三種遍歷模式,過載了輸出流運算子對樹裡面資料的輸出。

下面是測試結果截圖:

bitree.**件:

#pragma once

#include "iostream"

#include "stdlib.h"

#include "exception"

#include "malloc.h"

using namespace std;

//節點類

templateclass node

node(t elem)

~node() {};

};//二叉樹鏈式儲存

templateclass bitree

;templatebitree::bitree()

templatebitree::bitree(t elem, int num)

templatenode* bitree::createpreorder(t elem, int &i, int num)

else

}return p;

}templatebitree::~bitree()

templatebool bitree::empty()

templateint bitree::getlength()

templatevoid bitree::preorder(node* p)

else

}}templatevoid bitree::inorder(node* p)

else

}}templatevoid bitree::postorder(node* p)

else

}}templateostream& operator<< <>(ostream& output, bitreetree)

else

}output << endl;

return output;

}

test.cpp檔案

#include "bitree.h"

int main()

; bitreetree(elem, num);

cout << "先序遍歷輸出:";

tree.preorder(tree.root);

cout << endl;

cout << "中序遍歷輸出:" ;

tree.inorder(tree.root);

cout << endl;

cout << "中序遍歷輸出:";

tree.preorder(tree.root);

cout << endl;

cout << tree;

system("pause");

return 0;

}

建樹的時候注意下初始化陣列的大小和二叉樹中元素的大小是不一致的!本人新手上路,還望大家多多指教!

先序構建二叉樹及先序遍歷二叉樹

先序為dlr d 根節點,l 左子樹,r 右子樹 a b c d e 先序序列為abdce,輸入為abd c e 表示空格,代表空樹 輸入按滿二叉樹輸入 每乙個節點都是乙個子樹的根節點 void pre create tree treenode t else else void pre visit ...

先序構建二叉樹及先序遍歷二叉樹

先序為dlr d 根節點,l 左子樹,r 右子樹 a b c d e 先序序列為abdce,輸入為abd c e 表示空格,代表空樹 輸入按滿二叉樹輸入 每乙個節點都是乙個子樹的根節點 void pre create tree treenode t else else void pre visit ...

先序建立二叉樹及先序 中序 後序遍歷

先序二叉樹 先序建立二叉樹 void createbitree bitree t t bitnode malloc sizeof bitnode t data cnt t lchild null t rchild null createbitree t lchild createbitree t r...