Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有序二叉树,使用树排序按升序打印字符串_Java_Sorting_Binary Tree - Fatal编程技术网

Java 有序二叉树,使用树排序按升序打印字符串

Java 有序二叉树,使用树排序按升序打印字符串,java,sorting,binary-tree,Java,Sorting,Binary Tree,好的,我的目标是从标准输入中逐行读取(每行上只有一个字符串),将它们插入到树中,然后按升序对字符串进行排序并打印出来 java.util.ArrayList$Itr@659e0bfd 问题: 这是什么意思 return elementsList.iterator(); ?我如何在我的主屏幕中使用它 public class OBTComparable<Type extends Comparable<Type>> { ... private Type data

好的,我的目标是从标准输入中逐行读取(每行上只有一个字符串),将它们插入到树中,然后按升序对字符串进行排序并打印出来

java.util.ArrayList$Itr@659e0bfd
问题: 这是什么意思

return elementsList.iterator();
?我如何在我的主屏幕中使用它

public class OBTComparable<Type extends Comparable<Type>>
{
  ... 
  private Type data;
  ...
  public Iterator elementsAscending()
  {
    ArrayList<Type> elementsList = new ArrayList<Type>();
    addElementsAscending(elementsList);
    return elementsList.iterator();
  } // elementsAscending

  private void addElementsAscending(List elementsList)
  {
    if (!empty)
    { 
      left.addElementsAscending(elementsList);
      elementsList.add(data); 
      right.addElementsAscending(elementsList);
    } // if
  } // addElementsAscending 
公共类
{
... 
私有类型数据;
...
公共迭代器元素sascending()
{
ArrayList elementsList=新的ArrayList();
增编符号(元素列表);
return elementsList.iterator();
}//elementsAscending
私有无效补遗SCENDING(列表元素列表)
{
如果(!空)
{ 
左图。添加元素符号(元素列表);
元素列表添加(数据);
右图。增编符号(元素列表);
}//如果
}//addElementsAscending
现在主要是:

public static void main(String[] args)
{
  OBTComparable<String> obt = new OBTComparable<String>();
  BufferedReader reader
    = new BufferedReader(new InputStreamReader(System.in));

  try
  {
    String line;
    while ((line = reader.readLine()) != null)
      obt.insert(line);
    obt.elementsAscending();
    System.out.println(obt.elementsAscending()); 
    ////// NEED HELP HERE /////


  } catch (IOException e) { System.out.println(e); };  
publicstaticvoidmain(字符串[]args)
{
obt可比obt=新obt可比();
缓冲读取器
=新的BufferedReader(新的InputStreamReader(System.in));
尝试
{
弦线;
而((line=reader.readLine())!=null)
obt.insert(行);
obt.elementsascensing();
System.out.println(obt.elementsAscending());
//////这里需要帮助吗/////
}catch(ioe){System.out.println(e);};
好的,我修好了

String line;
  while ((line = reader.readLine()) != null)
      obt.insert(line);
    Iterator<String> t = obt.elementsAscending();
    while (t.hasNext())
    {
      String item = t.next();
      System.out.println(item);
    }
字符串行;
而((line=reader.readLine())!=null)
obt.insert(行);
迭代器t=obt.elementsAscending();
while(t.hasNext())
{
String item=t.next();
系统输出打印项次(项);
}

现在感觉很好:D.

你需要实现你自己的BST吗?是的,因为我是一个初学者。如果你有任何建议,请与我分享。我想学习如何实现它。可能需要几行代码,但是……如果你将它设为BST,那么按顺序遍历树会得到排序的顺序。很难说,但它不会错k就像这里有一个有效的BST一样。插入时只需维护BST规则,然后有一个方法按顺序遍历树。