-->
当前位置:首页 > 题库 > 正文内容

程序填空题:创建二叉排序树

Luz4年前 (2021-05-10)题库2061
```c++
#include
using namespace std;

typedef struct ElemType{
int key;
}ElemType;
int flag=1;

typedef struct BSTNode{
ElemType data;
BSTNode *lchild,*rchild;
}BSTNode,*BSTree;

void InsertBST(BSTree &T,ElemType e ) {
if(!T) {
BSTree S = new BSTNode;
S->data =e;
S->lchild = S->rchild = NULL;
@@[T=S](2);
}
else if (e.key< T->data.key)
@@[InsertBST(T->lchild, e )](2);
else if (e.key> T->data.key)
@@[InsertBST(T->rchild, e)](2);
}

void CreateBST(BSTree &T ) {
int i=1,n;
cin >> n;
T=NULL;
ElemType e;
while(i<=n){
cin>>e.key;
InsertBST(T, e);
i++;
}
}

void InOrderTraverse(BSTree &T)
{
if(T)
{
InOrderTraverse(T->lchild);
if(flag){cout<data.key;flag=0;}
else cout<<" "<data.key;
InOrderTraverse(T->rchild);
}
}

int main()
{
BSTree T;
CreateBST(T);
InOrderTraverse(T);
return 0;
}

```






答案:
第1空:T=S

第2空:InsertBST(T->lchild, e )

第3空:InsertBST(T->rchild, e)

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。