3 回答

TA貢獻1936條經驗 獲得超7個贊
import java.util.Arrays;
public class TreeNode implements Comparable<TreeNode>
{
private int label;
private TreeNode leftChild;
private TreeNode rightChild;
//constrctors ...
public int getLabel()
public void setLabel(int x)
public TreeNode getLeft()
public TreeNode getRight()
public void setLeft(TreeNode t)
public void setReght(TreeNode t)
public int compareTo(TreeNode ee)
{
return getLabel()-ee.getLabel();
}
public TreeNode[] complexQuery(TreeNode tree,int n,int m)
{
int Max=10000;
TreeNode line[]=new TreeNode[Max]; //記錄節點
int len=0; //記錄節點的個數
int count=0; //記錄符合條件的個數
line[0]=tree;
int f=0,r;
while (true) //用廣度寫下所有的節點 也就是一層一層記錄
{
for (int i=f;i<len;i++)
if (line[i].getLabel()>=n&&line[i].getLabel()%m==0) count++;
r=len;
for (int i=f;i<len;i++)
{
if (line[i].getLeft()!=null) line[r++]=line[i].getLeft();
if (line[i].getRight()!=null) line[r++]=line[i].getRight();
}
if (r==len) break;
f=len;
len=r;
}
TreeNode list[]=new TreeNode[count]; //要輸出的
int ll=0;
for (int i=0;i<len;i++)
if ((line[i].getLabel()>=n&&line[i].getLabel()%m==0)) list[ll++]=line[i];
Arrays.sort(list); //排序 TreeNode繼承了Compareble接口
return list;
}
}
//Queue不太熟 只好用數組返回代替
另外,虛機團上產品團購,超級便宜

TA貢獻1847條經驗 獲得超7個贊
import java.util.Arrays;
public class TreeNode implements Comparable<TreeNode>
{
private int label;
private TreeNode leftChild;
private TreeNode rightChild;
//constrctors ...
public int getLabel()
public void setLabel(int x)
public TreeNode getLeft()
public TreeNode getRight()
public void setLeft(TreeNode t)
public void setReght(TreeNode t)
public int compareTo(TreeNode ee)
{
return getLabel()-ee.getLabel();
}
public TreeNode[] complexQuery(TreeNode tree,int n,int m)
{
int Max=10000;
TreeNode line[]=new TreeNode[Max]; //記錄節點
int len=0; //記錄節點的個數
int count=0; //記錄符合條件的個數
line[0]=tree;
int f=0,r;
while (true) //用廣度寫下所有的節點 也就是一層一層記錄
{
for (int i=f;i<len;i++)
if (line[i].getLabel()>=n&&line[i].getLabel()%m==0) count++;
r=len;
for (int i=f;i<len;i++)
{
if (line[i].getLeft()!=null) line[r++]=line[i].getLeft();
if (line[i].getRight()!=null) line[r++]=line[i].getRight();
}
if (r==len) break;
f=len;
len=r;
}
TreeNode list[]=new TreeNode[count]; //要輸出的
int ll=0;
for (int i=0;i<len;i++)
if ((line[i].getLabel()>=n&&line[i].getLabel()%m==0)) list[ll++]=line[i];
Arrays.sort(list); //排序 TreeNode繼承了Compareble接口
return list;
}
}
//Queue不太熟 只好用數組返回代替
添加回答
舉報