1 solutions

  • 0
    @ 2024-12-10 22:44:37

    C++ :

    #include<iostream>
    #include<cstring>
    #include<cstdio>
    using namespace std;
    struct tree
    {
    	char data;
    	int prt,lch,rch;
    };
    int n;
    tree a[30];
    void init();
    int q_order(int);
    int z_order(int);
    int h_order(int);
    int main()
    {
    	//freopen("test7.in","r",stdin);
    	//freopen("test7.out","w",stdout);
    	init();
    	q_order(1);cout<<endl;
    	z_order(1);cout<<endl;
    	h_order(1);cout<<endl;
    	return 0;
    }
    void init()
    {
    	memset(a,0,sizeof(a)); 
    	cin>>n;
    	int x,y;
    	for(int i=1;i<=n;i++)
    	{
    		cin>>a[i].data;//读节点值 
    		cin>>x>>y;//x为左儿子,y为右儿子 
    		if(x!=0)//当左儿子非0 
    		{
    			a[i].lch=x;
    			a[x].prt=i;
    		} 
    		if(y!=0)//当右儿子非0 
    		{
    			a[i].rch=y;
    			a[y].prt=i;
    		}		
    	}
    }
    int q_order(int x)
    {
    	if(x==0) return 0;//当节点为0退出 
    	cout<<a[x].data;
    	q_order(a[x].lch);
    	q_order(a[x].rch);
    	return 0;
    }
    int z_order(int x)
    {	
    	if(x==0) return 0;
    	z_order(a[x].lch);
    	cout<<a[x].data;
    	z_order(a[x].rch);
    	return 0;
    }
    int h_order(int x)
    {	
    	if(x==0) return 0;
    	h_order(a[x].lch);
    	h_order(a[x].rch);
    	cout<<a[x].data;
    	return 0;
    }
    
    • 1

    Information

    ID
    559
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By