二叉排序树

it2025-03-03  20

二叉排序树

题目描述

输入一系列整数,建立二叉排序数,并进行前序,中序,后序遍历。

输入

输入第一行包括一个整数n(1<=n<=100)。接下来的一行包括n个整数。

输出

可能有多组测试数据,对于每组数据,将题目所给数据建立一个二叉排序树,并对二叉排序树进行前序、中序和后序遍历。每种遍历结果输出一行。每行最后一个数据之后有一个空格。

样例输入

1 2 2 8 15 4 21 10 5 39

样例输出

2 2 2 8 15 8 15 15 8 21 10 5 39 5 10 21 39 5 10 39 21 typedef struct的用法 转自:https://www.cnblogs.com/yaowen/p/4797105.html

 

 

#include<bits/stdc++.h> using namespace std; typedef struct Bnode { int data; struct Bnode *lchild,*rchild; }Bnode,*Btree; void create_bst(Btree &T,int a) { if(T==NULL) { T=(Btree)malloc(sizeof(Bnode)); T->rchild=NULL; T->lchild=NULL; T->data=a; } else { if(a>T->data) { create_bst(T->rchild,a); } if(a<T->data) { create_bst(T->lchild,a); } else return; } } void PreOrder(Btree T) { if(T==NULL) return; cout<<T->data<<" "; PreOrder(T->lchild); PreOrder(T->rchild); } void InOrder(Btree T) { if(T==NULL) return; InOrder(T->lchild); cout<<T->data<<" "; InOrder(T->rchild); } void FinOrder(Btree T) { if(T==NULL) return; FinOrder(T->lchild); FinOrder(T->rchild); cout<<T->data<<" "; } int main() { int n; while(cin>>n) { Btree T=NULL; while(n--) { int a; cin>>a; create_bst(T,a); } PreOrder(T); cout<<endl; InOrder(T); cout<<endl; FinOrder(T); cout<<endl; } return 0; }

  

转载于:https://www.cnblogs.com/qing123tian/p/11107580.html

相关资源:数据结构二叉排序树的实现
最新回复(0)