ツリーの並べ替え/二叉検索ツリー/二叉検索ツリー
5764 ワード
ツリーの並べ替え/二叉検索ツリー/二叉検索ツリー
特徴におけるシーケンシャルの結果は、インクリメントシーケンス である必要がある.辞書シーケンス(階層順)の最小エルゴード方法は、前の順序 を巡回したものである.
構造体定義
特徴
構造体定義
struct node
{
int data;
node *lc;
node *rc;
};
木を建てる//
void create(node *&root,int t)
{
if(root==NULL)
{
root=new node;
root->data=t;
root->lc=NULL;
root->rc=NULL;
}
else if(t< root->data) create(root->lc,t);
else create(root->rc,t);
}
前の順序(階層、辞書順)を巡回します.int flag;
int pre[10010];
//
void preorder(node *root)
{
if(root)
{
//if(flag!=0) cout<
cout<data;// 1 2 3 4 5
///pre[a++]=root->data;/// 12345
//flag=1;
preorder(root->lc);
preorder(root->rc);
}
}
int main()
{
int n,num;//n , num
node *root=NULL;
for(int i=0;i>num;
create(root,num);
}
/*char n[17];//
node *root=NULL;
cin>>n;
for(int i=0;i
//flag=0;//
///a=0;
preorder(root);
cout<
センターフォワードint flag;
int in[10010];
//
void inorder(node *root)
{
if(root)
{
inorder(root->lc);
//if(flag!=0) cout<
cout<data;// 1 2 3 4 5
///in[b++]=root->data;/// 12345
//flag=1;//
inorder(root->rc);
}
}
int main()
{
int n,num;//n , num
node *root=NULL;
for(int i=0;i>num;
create(root,num);
}
/*char n[17];//
node *root=NULL;
cin>>n;
for(int i=0;i
//flag=0;//
///b=0;
inorder(root);
cout<
後序を巡回int flag;
int post[10010];
//
void postorder(node *root)
{
if(root)
{
postorder(root->lc);
postorder(root->rc);
//if(flag!=0) cout<
cout<data;// 1 2 3 4 5
///in[b++]=root->data;/// 12345
//flag=1;//
}
}
int main()
{
int n,num;//n , num
node *root=NULL;
for(int i=0;i>num;
create(root,num);
}
/*char n[17];//
node *root=NULL;
cin>>n;
for(int i=0;i
//flag=0;//
///c=0;
postorder(root);
cout<