資料結構 二叉排序樹

2021-10-23 05:14:27 字數 967 閱讀 6700

#include #include #include #include using namespace std;

struct node

node(int d) : data(d),lchild(nullptr),rchild(nullptr){}

};//通過遞迴的方式構建一顆二叉排序樹

node* insert(node *root,int x)else if(root->data < x)else if(root->data > x)

return root;

}//先序遍歷

void preorder(node *root)

printf("%d ",root->data);

preorder(root->lchild);

preorder(root->rchild);

}//中序遍歷

void inorder(node *root)

inorder(root->lchild);

printf("%d ",root->data);

inorder(root->rchild);

}//後序遍歷

void postorder(node *root)

postorder(root->lchild);

postorder(root->rchild);

printf("%d ",root->data);

}// 根據輸入的數值構造一棵二叉排序樹

// 並以中序、先序和後序的方式輸出該二叉排序樹

void buildetree()

preorder(root);

printf("\n");

inorder(root);

printf("\n");

postorder(root);

printf("\n");

}}int main()

資料結構 二叉排序樹

二叉排序樹是一種特殊結構的二叉樹,它作為一種表的組織手段,通常被稱為 樹表。可以作為一種排序和檢索的手段。定義 二叉排序樹或是空樹,或是具有下述性質的二叉樹 其左子樹上所有結點的資料值均小於根結點的資料值 右子樹上所有結點的資料值均大於或等於根結點的資料值。左子樹和右子樹又各是一棵二叉排序樹。對二叉...

資料結構 二叉排序樹

二叉排序樹 binarysorttree 具有下列性質的二叉樹 1 若左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 2 若右子樹不空,則右子樹上所有結點的值均大於它的根結點的值 3 左 右子樹也分別為二叉排序樹 include includeusing namespace std type...

資料結構 二叉排序樹

如果需要乙個滿足 支援排序性 高效插入 刪除操作 高效查詢的資料結構,怎麼做?先看看一些簡單的資料結構 1 排序順序表 陣列 查詢可以採用折半查詢演算法,時間效率為o log2n 插入 刪除操作的時間複雜度為o n 資料量大時,效率太低。2 排序單鏈表 只能採用順序查詢,時間複雜度為o n 不能採用...