如何把下面的C++代码翻译成相应的java代码:
void fun(int n,int* a1,int* a2){
//...
fun(i,a1+1,a2);//i为int类型
}int a1[] = {1,2,3,4,5};
int a2[] = {6,7,8,9,10};

解决方案 »

  1.   

    答:我初步想到的是这样:(由于JAVA不支持C++中指针类的+、-等操作(高效、功能强大但危险),因此,这一类的指会操作要进行JAVA转换)void fun(int n,int[] a1,int m,int[] a2){
        //...
        fun(i,a1,m+1,a2);//i为int类型
    }int a1[] = {1,2,3,4,5};
    int a2[] = {6,7,8,9,10};
    以上仅供你参考
      

  2.   

    以下代码怎么改成java代码?
    int GetPostOrder(int n, const int* preorder, const int* inorder, int* postorder)
    {
    if (n == 1)
    {
    postorder[0] = preorder[0];
    }
    else if (n > 1)
    {
    int i;
    for (i=0; i<n; i++)
    {
    if (inorder[i] == preorder[0])
    break;
    }
    if (i == n) return -1;
    GetPostOrder(i, preorder+1, inorder, postorder);
    GetPostOrder(n-1-i, preorder+1+i, inorder+i+1, postorder+i);
    postorder[n-1] = preorder[0];
    }
    return 0;
    }int main(void)
    {
    int i;
    int preorder[] = {'A','B','F','E','G','C','D','H','N'};
    int inorder[] = {'F','B','E','G','A','H','D','N','C'};
    int postorder[] = {'F','G','E','B','H','N','D','C','A'};
    int n = sizeof(preorder)/sizeof(int); GetPostOrder(n, preorder, inorder, postorder);
    for (i=0; i<sizeof(preorder)/sizeof(int); i++)
    cout<<(char)postorder[i];
    cout<<endl; return 0;
    }
      

  3.   

    答:参考代码如下:
    public class Test1 {
    public static int getPostOrder(int n,  int[] preorder,  int[] inorder, int[] postorder)
    {
     return getPostOrder(n,preorder,0,inorder,0,postorder,0);
    } private static int getPostOrder(int n, int[] preorder, int pre_index, int[] inorder, int in_index,int[] postorder,int post_index)
    {
      if (n == 1)
        {
            postorder[post_index] = preorder[pre_index];
        }
        else if (n > 1)
        {
            int i;
            for (i=0; i<n; i++)
            {
                if (inorder[i+in_index] == preorder[pre_index])
                    break;
            }
            if (i == n) return -1;
            getPostOrder(i, preorder,pre_index+1, inorder,in_index, postorder,post_index);
            getPostOrder(n-1-i, preorder,pre_index+1+i, inorder,in_index+i+1, postorder,post_index+i);
            postorder[n-1+post_index] = preorder[pre_index];
        }
        return 0; }
    public static void main(String[] args) {
    // TODO Auto-generated method stub

    int i;
        int preorder[] = {'A','B','F','E','G','C','D','H','N'};
        int inorder[] = {'F','B','E','G','A','H','D','N','C'};
        int postorder[] = {'F','G','E','B','H','N','D','C','A'};
        int n = preorder.length;     getPostOrder(n, preorder, inorder, postorder);
        for (i=0; i<preorder.length; i++)
            System.out.print((char)postorder[i]);
       System.out.println(); }}
    程序运行结果:FGEBHNDCA
      

  4.   

    void fun(int n,int* a1,int* a2){
        //...
        fun(i,a1+1,a2);//i为int类型
    }int a1[] = {1,2,3,4,5};
    int a2[] = {6,7,8,9,10};
    ===================================
    int j=0;
    void fun(int n,int a1,int[] a2){
        //...
        fun(i,a1[++j],a2);//i为int类型
    }int a1[] = {1,2,3,4,5};
    int a2[] = {6,7,8,9,10};