פורסם 2006 במרץ 1119 שנים זה התוכנית הראשית:package mypackage;public class LongestKoter { public static void main(String[] args) { Tree t=new Tree(50); for(int i = 0; i<20 ; i++) insert(t,(int)((Math.random()*100)+1)); print(t); } public static void insert(Tree t, int x) { if(x<= t.getInfo() && t.getLeft()==null) t.setLeft(new Tree(x)); if(x> t.getInfo() && t.getRight()==null) t.setRight(new Tree(x)); if(x<= t.getInfo() && t.getLeft()!=null) insert(t,x); if(x> t.getInfo() && t.getRight()!=null) insert(t,x); } public static void print(Tree t) { if(t.getLeft()!=null) print(t.getLeft()); System.out.println(t.getInfo()+"/n"); if(t.getRight()!=null) print(t.getRight()); }}וזה המחלקה TREE שאני יוצר ממנה עצמיםpackage mypackage;public class Tree { private int info; private Tree left; private Tree right; public Tree(int x) { this.info=x; this.left=null; this.right=null; } public Tree(int x, Tree left , Tree right) { this.info=x; this.left=left; this.right=right; } public int getInfo() { return(this.info); } public void setInfo(int x) { this.info=x; } public Tree getLeft() { return(this.left); } public Tree getRight() { return(this.right); } public void setLeft(Tree left) { this.left=left; } public void setRight(Tree right) { this.right=right; }}תריצו קומפילציה תראו מה הבעיה..
פורסם 2006 במרץ 1219 שנים יש לך באג בפונקציה insertpublic static void insert(Tree t, int x) { if(x<= t.getInfo() && t.getLeft()==null) t.setLeft(new Tree(x)); if(x> t.getInfo() && t.getRight()==null) t.setRight(new Tree(x)); if(x<= t.getInfo() && t.getLeft()!=null) insert(t.getLedt(),x); if(x> t.getInfo() && t.getRight()!=null) insert(t.getRight(),x); }
פורסם 2006 במרץ 1319 שנים מחבר יש לך באג בפונקציה insertpublic static void insert(Tree t, int x) { if(x<= t.getInfo() && t.getLeft()==null) t.setLeft(new Tree(x)); if(x> t.getInfo() && t.getRight()==null) t.setRight(new Tree(x)); if(x<= t.getInfo() && t.getLeft()!=null) insert(t.getLedt(),x); if(x> t.getInfo() && t.getRight()!=null) insert(t.getRight(),x); }יש לך מושג מהי?
פורסם 2006 במרץ 1319 שנים מה שאני כתבתי זו הגירסה המתוקנת...שים לב שמתי שיש עץ ימני/שמאלי קראת לפונקציה insert(t,x);במקום:insert(t.getRight/Left(),x)
פורסם 2006 במרץ 1319 שנים אני הייתי רושם: if(x<= t.getInfo()) if(t.getLeft()==null) t.setLeft(new Tree(x)); else insert(t.getLeft(),x); else if(t.getRight()==null) t.setRight(new Tree(x)); else insert(t.getRight(),x);ככה זה ברור יותר.כל זה בהנחה שT הוא לא NULL. אתה יכול לזרוק אקספשיון אם הוא כן.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.