import java.applet.Applet;
import java.awt.Button;
import java.awt.Event;
import java.awt.Font;
import java.awt.Graphics;
public class index extends Applet {
Font f = new Font("Calibri", Font.BOLD, 20);
int valoare = 0;
Button next;
@Override
public void init() {
next = new Button("Urmatoarea ramura");
add(next);
}
@Override
public boolean action(Event e, Object args) {
if (e.target == next) //target = apasa
{
valoare++;
}
addNode();
return true;
}
@Override
public void paint(Graphics g) {
}
public void addNode() {
Graphics g = this.getGraphics();
g.drawString("1. initializeaza listele FRONTIERA ?{Si} si TERITORIU ?{}", 20, 560);
g.drawString("2. daca FRONTIERA={} atunci întoarce INSUCCES /*nu exista solutie*/", 20, 575);
g.drawString("3. elimina primul nod S din FRONTIERA si insereaza-l în TERITORIU", 20, 590);
g.drawString("4. daca adancime(S) = Hmax atunci repeta de la pasul 2 expandeaza nodul S", 20, 605);
g.drawString("4.1. genereaza toti succesorii directi Sj ai nodului S", 20, 620);
g.drawString("4.2. pentru fiecare succesor Sj (1=j=n) al lui S executa", 20, 635);
g.drawString("4.2.1. stabileste legatura Sj ? S", 20, 650);
g.drawString("4.2.2. daca Sj este stare finala atunci", 20, 665);
g.drawString("i. solutia este (Sj, S, ..., Si)", 20, 680);
g.drawString("ii. întoarce SUCCES /* a fost gasita solutia */", 20, 695);
g.drawString("4.2.3.Toate starile anterior generate în solutia partiala curenta atunci insereaza Sj în FRONTIERA,la inceput", 650, 560);
g.drawString("5. repeta de la pasul 2", 650, 575);
g.drawString("Dezavantajul cautarii este posibilitatea blocarii într-o cale gresit aleasa", 660, 590);
g.drawString("Pasul1: Pleaca din radacina se duce in nodul a1 si apoi in a1.1 si vede dk a gasit solutia prima data", 650, 605);
g.drawString("Pasul2: Revine in radacina", 650, 620);
g.drawString("Pasul3: Pleaca pe traseul Root a1 a1.1", 650, 635);
g.drawString("Pasul4: Pleaca pe traseul Root,a2,a2.1", 650, 650);
g.drawString("Pasul5: Pleaca pe traseul Root,a2,a2.2", 650, 665);
g.drawString("Pasul6: Revine in radacina", 650, 680);
g.drawString("Pasul7: Pleaca pe traseul Root,a3 si atat deoarece a3 nu are descendenti", 650, 695);
g.setFont(f);
g.drawString("Cautare in adincime limitata ", 20, 20);
g.drawString("Lungimea = 2", 20, 50);
g.drawRoundRect(615, 40, 40, 40, 40, 40);
g.drawString("1", 631, 67);
g.drawString("n=0", 431, 67);
if (valoare == 2) {
g.drawRoundRect(460, 140, 40, 40, 40, 40);
g.drawLine(616, 70, 500, 150);// ramura stinga
g.drawString("2", 475, 166);
g.drawString("n=1", 275, 166);
} else if (valoare == 3) {
g.drawRoundRect(760, 140, 40, 40, 40, 40);
g.drawString("3", 775, 166);
g.drawLine(656, 70, 762, 150);//ramura dreapta
} else if (valoare == 4) {
g.drawRoundRect(338, 268, 40, 40, 40, 40);//1 inel
g.drawString("4", 353, 294);
g.drawString("n=2", 163, 294);
g.drawLine(460, 165, 370, 270);//ramura stinga
} else if (valoare == 5) {
g.drawRoundRect(568, 268, 40, 40, 40, 40);//2 inel
g.drawString("5", 583, 294);
g.drawLine(500, 165, 580, 270);//ramura dreapta
} else if (valoare == 6) {
g.drawRoundRect(640, 268, 40, 40, 40, 40);//3 inel
g.drawString("6", 655, 294);
g.drawLine(760, 165, 670, 270);//ramura stinga
// g.drawLine(747, 165, 682, 240);//linia sageata
// g.drawLine(682, 240, 682, 230);//linia in sus
// g.drawLine(682, 240, 692, 240);//linia in dreapta ... sageata
} else if (valoare == 7) {
g.drawRoundRect(870, 268, 40, 40, 40, 40);//4 inel
g.drawString("7", 885, 294);
g.drawLine(800, 165, 880, 270);//ramura dreapta
// g.drawLine(814, 165, 870, 240);//linia sageata
// g.drawLine(870, 240, 870, 230);//sageata in uss
// g.drawLine(870, 240, 860, 240);//sageata in stinga
} else if (valoare == 8) {
g.drawRoundRect(240, 398, 40, 40, 40, 40);//1 inel
g.drawString("8", 255, 424);
g.drawLine(340, 300, 270, 400);//ramura stinga
} else if (valoare == 9) {
g.drawLine(600, 70, 510, 130);// linia de la sageata
g.drawLine(510, 130, 510, 120);//de la sageata linia in sus
g.drawLine(510, 130, 520, 130);//de la sageata linia orizont
g.drawString("2", 520, 490);
} else if (valoare == 10) {
g.drawLine(447, 165, 382, 240);//linia sageata
g.drawLine(382, 240, 382, 230);//linia in sus
g.drawLine(382, 240, 392, 240);//linia in dreapta ... sageata
g.drawString("4", 540, 490);
} /*
else if (valoare == 11) {
g.drawLine(328, 300, 272, 380);//
g.drawLine(272, 380, 282, 380);// in dreapta linia
g.drawLine(272, 380, 272, 370);//
g.drawString("8", 560, 490);
}
else if (valoare == 12) {
g.drawLine(345, 315, 289, 395);//
g.drawLine(345, 315, 335, 315);//
g.drawLine(345, 315, 345, 325);//
g.drawString("4", 580, 490);
}
*/ else if (valoare == 11) {
g.drawLine(458, 185, 401, 251);//linia sageata
g.drawLine(448, 185, 458, 185);//linia sageata in dreapta
g.drawLine(458, 195, 458, 185);//linia sageata in dreapta
g.drawString("2", 560, 490);
} else if (valoare == 12) {
g.drawLine(514, 165, 570, 240);//linia sageata
g.drawLine(570, 240, 570, 230);//sageata in uss
g.drawLine(570, 240, 560, 240);//sageata in stinga
g.drawString("5", 580, 490);
} else if (valoare == 13) {
g.drawLine(500, 185, 550, 250);//linia sageata
g.drawLine(500, 185, 500, 195);//linia sageata in jos
g.drawLine(500, 185, 510, 185);
g.drawString("2", 600, 490);
} else if (valoare == 14) {
g.drawLine(616, 85, 534, 140);// linia de la sageata
g.drawLine(616, 85, 606, 85);// linia de la sageata in sus
g.drawLine(616, 85, 616, 95);// linia din jos de la sageata
g.drawString("1", 620, 490);
} else if (valoare == 15) {
g.drawLine(672, 70, 752, 130);//linia de la sageata
g.drawLine(752, 130, 742, 130);//linia de la sageata
g.drawLine(752, 130, 752, 120);//linia de la sageata
g.drawString("1-3", 620, 490);
/* g.drawLine(672, 70, 752, 130);//linia de la sageata
g.drawLine(672, 70, 682, 70);//linia de la sageata in jos
g.drawLine(672, 70, 672, 80);//linia de la sageata in jos
*/
} else if (valoare == 16) {
g.drawLine(758, 185, 701, 251);//linia sageata
g.drawLine(701, 251, 711, 251);//linia sageata
g.drawLine(701, 251, 701, 241);//linia sageata
g.drawString("6", 657, 490);
} else if (valoare == 17) {
g.drawLine(747, 165, 682, 240);//linia sageata
g.drawLine(747, 165, 737, 165);
g.drawLine(747, 165, 747, 175);
g.drawString("3", 680, 490);
} else if (valoare == 18) {
g.drawLine(814, 165, 870, 240);//linia sageata
g.drawLine(870, 240, 870, 230);//sageata in uss
g.drawLine(870, 240, 860, 240);//sageata in stinga
g.drawString("7", 700, 490);
}
//Liniile
g.drawLine(500, 470, 712, 470);
g.drawLine(500, 495, 712, 495);
g.drawString("1", 500, 490);
}
}
Cautare cu cost uniform + COD
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author Samuray
*/
import java.applet.Applet;
import java.awt.Button;
import java.awt.Event;
import java.awt.Font;
import java.awt.Graphics;
public class index_cost extends Applet {
Font f = new Font("Calibri", Font.BOLD, 20);
Font s = new Font("Calibri", Font.BOLD, 12);
int valoare = 0;
Button next;
@Override
public void init() {
next = new Button("Urmatoarea ramura");
add(next);
}
@Override
public boolean action(Event e, Object args) {
if (e.target == next) //target = apasa
{
valoare++;
}
addNode();
return true;
}
@Override
public void paint(Graphics g) {
}
public void addNode() {
Graphics g = this.getGraphics();
g.drawString("1.initializeaza listele FRONTIERA ?{Si} si TERITORIU ?{}", 20, 560);
g.drawString("2. calculeaza f(Si) si asociaza aceasta valoare nodului Si", 20, 575);
g.drawString("3. daca FRONTIERA={} atunci întoarce INSUCCES /*nu exista solutie*/", 20, 590);
g.drawString("4. selecteaza din FRONTIERA un nod S pentru care f(S) este minima", 20, 605);
g.drawString("5. elimina nodul S din FRONTIERA si insereaza-l în TERITORIU", 20, 620);
g.drawString("6. daca S este starea finala atunci", 20, 635);
g.drawString("6.1. construieste solutia(S,..., Si), prin trasarea caii de-a lungul pointer-ilor de la scop înapoi la starea initiala, Si", 20, 650);
g.drawString("6.2 întoarce SUCCES /* s-a gasit solutia problemei */", 20, 665);
g.drawString("7. expandeaza nodul S", 370, 665);
g.drawString("7.1. genereaza toti succesorii directi Sj ai nodului S", 20, 680);
g.drawString("7.2. pentru fiecare succesor Sj (1=j=n) al lui S executa", 20, 695);
g.drawString("7.2.1. calculeaza f(Sj) = g(S) + cost_arc(S, Sj) + h(Sj) si asociaza valoarea lui Sj", 650, 560);
g.drawString("7.2.2. stabileste legatura fiu – parinte Sj -> S, prin atasarea unui pointer de la Sj înapoi la S", 650, 575);
g.drawString("7.2.3 daca Sj ? toate starile anterior generate în solutia partiala curenta atunci introduce Sj în FRONTIERA", 650, 590);
g.drawString("7.2.4 altfel i. fie S’j copia lui Sj din FRONTIERA sau TERITORIU ii. daca g(Sj) < g(S’j) atunci", 650, 605);
g.drawString("* transforma legatura S’j -> predecesor(S’j) în legatura S’j -> S", 650, 620);
g.drawString("* înlocuieste f(S’j) asociata lui S’j cu f(Sj) (se modifica doar g) daca S’j ? TERITORIU atunci", 650, 635);
g.drawString("*elimina S’j din TERITORIU si insereaza-l în FRONTIERA iii. ignora nodul Sj", 650, 650);
g.drawString("8. repeta de la pasul 3", 650, 665);
g.setFont(f);
g.drawString("Cautare cu cost uniform", 20, 20);
g.drawRoundRect(615, 40, 40, 40, 40, 40);
g.drawString("1", 631, 67);
if (valoare == 2) {
g.drawRoundRect(460, 140, 40, 40, 40, 40);
g.drawLine(616, 70, 500, 150);// ramura stinga
g.drawString("2", 475, 166);
g.drawLine(500, 161, 760, 161); // linia ce leaga 2 cu 3
} else if (valoare == 3) {
g.drawRoundRect(760, 140, 40, 40, 40, 40);
g.drawString("3", 775, 166);
g.drawLine(656, 70, 762, 150);//ramura dreapta
} else if (valoare == 4) {
g.drawRoundRect(338, 268, 40, 40, 40, 40);//1 inel
g.drawString("4", 353, 294);
g.drawLine(460, 165, 370, 270);//ramura stinga
} else if (valoare == 5) {
g.drawRoundRect(870, 268, 40, 40, 40, 40);//4 inel
g.drawString("5", 885, 294);
g.drawLine(800, 165, 880, 270);//ramura dreapta
} else if (valoare == 6) {
g.drawRoundRect(990, 268, 40, 40, 40, 40);//4 inel
g.drawString("7", 1005, 294);
g.drawLine(910, 288, 990, 288);//ramura dreapta
} else if (valoare == 7) {
g.drawRoundRect(990, 400, 40, 40, 40, 40);//4 inel
g.drawString("10", 1000, 424);
g.drawLine(1010, 310, 1010, 400);//ramura dreapta
} else if (valoare == 8) {
g.drawRoundRect(870, 400, 40, 40, 40, 40);//4 inel
g.drawString("6", 885, 424);
g.drawLine(890, 310, 890, 400);//ramura dreapta
} else if (valoare == 9) {
g.drawRoundRect(240, 398, 40, 40, 40, 40);//1 inel
g.drawString("5", 255, 424);
g.drawLine(340, 300, 270, 400);//ramura stinga
} else if (valoare == 10) {
g.drawRoundRect(750, 500, 40, 40, 40, 40);//4 inel
g.drawString("8", 765, 527);
g.drawLine(875, 437, 785, 507);//ramura dreapta
} else if (valoare == 11) {
g.drawRoundRect(990, 500, 40, 40, 40, 40);//4 inel
g.drawString("9", 1005, 527);
g.drawLine(906, 435, 998, 505);//ramura dreapta
g.drawString("4", 710, 100);
g.drawString("5", 635, 150);
g.drawString("3", 385, 200);
g.drawString("6", 850, 200);
g.drawString("7", 280, 320);
g.drawString("8", 900, 340);
g.drawString("1", 1030, 340);
g.drawString("9", 930, 305);
g.drawString("3", 960, 470);
g.drawString("2", 820, 470);
g.drawString("12", 525, 100);
} else if (valoare == 12) {
g.drawLine(670, 70, 762, 137);//ramura dreapta
g.drawLine(762, 137, 752, 137);//ramura dreapta
g.drawLine(762, 137, 762, 127);//ramura dreapta
g.drawString("3", 520, 390);
} else if (valoare == 13) {
g.drawLine(813, 165, 883, 256);//ramura dreapta
g.drawLine(883, 256, 873, 256);//ramura dreapta
g.drawLine(883, 256, 883, 246);//ramura dreapta
g.drawString("5", 540, 390);
} else if (valoare == 14) {
g.drawLine(915, 276, 985, 276);//ramura dreapta
g.drawLine(985, 276, 972, 269);//ramura dreapta
g.drawLine(985, 276, 972, 284);//ramura dreapta
g.drawString("7", 560, 390);
} else if (valoare == 15) {
g.drawLine(1020, 313, 1020, 390);//ramura dreapta
g.drawLine(1020, 390, 1010, 380);//ramura dreapta
g.drawLine(1020, 390, 1030, 380);//ramura dreapta
g.drawString("10", 580, 390);
}
//Liniile
g.drawLine(500, 370, 600, 370);
g.drawLine(500, 395, 600, 395);
g.drawString("1", 500, 390);
}
}
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author Samuray
*/
import java.applet.Applet;
import java.awt.Button;
import java.awt.Event;
import java.awt.Font;
import java.awt.Graphics;
public class index_cost extends Applet {
Font f = new Font("Calibri", Font.BOLD, 20);
Font s = new Font("Calibri", Font.BOLD, 12);
int valoare = 0;
Button next;
@Override
public void init() {
next = new Button("Urmatoarea ramura");
add(next);
}
@Override
public boolean action(Event e, Object args) {
if (e.target == next) //target = apasa
{
valoare++;
}
addNode();
return true;
}
@Override
public void paint(Graphics g) {
}
public void addNode() {
Graphics g = this.getGraphics();
g.drawString("1.initializeaza listele FRONTIERA ?{Si} si TERITORIU ?{}", 20, 560);
g.drawString("2. calculeaza f(Si) si asociaza aceasta valoare nodului Si", 20, 575);
g.drawString("3. daca FRONTIERA={} atunci întoarce INSUCCES /*nu exista solutie*/", 20, 590);
g.drawString("4. selecteaza din FRONTIERA un nod S pentru care f(S) este minima", 20, 605);
g.drawString("5. elimina nodul S din FRONTIERA si insereaza-l în TERITORIU", 20, 620);
g.drawString("6. daca S este starea finala atunci", 20, 635);
g.drawString("6.1. construieste solutia(S,..., Si), prin trasarea caii de-a lungul pointer-ilor de la scop înapoi la starea initiala, Si", 20, 650);
g.drawString("6.2 întoarce SUCCES /* s-a gasit solutia problemei */", 20, 665);
g.drawString("7. expandeaza nodul S", 370, 665);
g.drawString("7.1. genereaza toti succesorii directi Sj ai nodului S", 20, 680);
g.drawString("7.2. pentru fiecare succesor Sj (1=j=n) al lui S executa", 20, 695);
g.drawString("7.2.1. calculeaza f(Sj) = g(S) + cost_arc(S, Sj) + h(Sj) si asociaza valoarea lui Sj", 650, 560);
g.drawString("7.2.2. stabileste legatura fiu – parinte Sj -> S, prin atasarea unui pointer de la Sj înapoi la S", 650, 575);
g.drawString("7.2.3 daca Sj ? toate starile anterior generate în solutia partiala curenta atunci introduce Sj în FRONTIERA", 650, 590);
g.drawString("7.2.4 altfel i. fie S’j copia lui Sj din FRONTIERA sau TERITORIU ii. daca g(Sj) < g(S’j) atunci", 650, 605);
g.drawString("* transforma legatura S’j -> predecesor(S’j) în legatura S’j -> S", 650, 620);
g.drawString("* înlocuieste f(S’j) asociata lui S’j cu f(Sj) (se modifica doar g) daca S’j ? TERITORIU atunci", 650, 635);
g.drawString("*elimina S’j din TERITORIU si insereaza-l în FRONTIERA iii. ignora nodul Sj", 650, 650);
g.drawString("8. repeta de la pasul 3", 650, 665);
g.setFont(f);
g.drawString("Cautare cu cost uniform", 20, 20);
g.drawRoundRect(615, 40, 40, 40, 40, 40);
g.drawString("1", 631, 67);
if (valoare == 2) {
g.drawRoundRect(460, 140, 40, 40, 40, 40);
g.drawLine(616, 70, 500, 150);// ramura stinga
g.drawString("2", 475, 166);
g.drawLine(500, 161, 760, 161); // linia ce leaga 2 cu 3
} else if (valoare == 3) {
g.drawRoundRect(760, 140, 40, 40, 40, 40);
g.drawString("3", 775, 166);
g.drawLine(656, 70, 762, 150);//ramura dreapta
} else if (valoare == 4) {
g.drawRoundRect(338, 268, 40, 40, 40, 40);//1 inel
g.drawString("4", 353, 294);
g.drawLine(460, 165, 370, 270);//ramura stinga
} else if (valoare == 5) {
g.drawRoundRect(870, 268, 40, 40, 40, 40);//4 inel
g.drawString("5", 885, 294);
g.drawLine(800, 165, 880, 270);//ramura dreapta
} else if (valoare == 6) {
g.drawRoundRect(990, 268, 40, 40, 40, 40);//4 inel
g.drawString("7", 1005, 294);
g.drawLine(910, 288, 990, 288);//ramura dreapta
} else if (valoare == 7) {
g.drawRoundRect(990, 400, 40, 40, 40, 40);//4 inel
g.drawString("10", 1000, 424);
g.drawLine(1010, 310, 1010, 400);//ramura dreapta
} else if (valoare == 8) {
g.drawRoundRect(870, 400, 40, 40, 40, 40);//4 inel
g.drawString("6", 885, 424);
g.drawLine(890, 310, 890, 400);//ramura dreapta
} else if (valoare == 9) {
g.drawRoundRect(240, 398, 40, 40, 40, 40);//1 inel
g.drawString("5", 255, 424);
g.drawLine(340, 300, 270, 400);//ramura stinga
} else if (valoare == 10) {
g.drawRoundRect(750, 500, 40, 40, 40, 40);//4 inel
g.drawString("8", 765, 527);
g.drawLine(875, 437, 785, 507);//ramura dreapta
} else if (valoare == 11) {
g.drawRoundRect(990, 500, 40, 40, 40, 40);//4 inel
g.drawString("9", 1005, 527);
g.drawLine(906, 435, 998, 505);//ramura dreapta
g.drawString("4", 710, 100);
g.drawString("5", 635, 150);
g.drawString("3", 385, 200);
g.drawString("6", 850, 200);
g.drawString("7", 280, 320);
g.drawString("8", 900, 340);
g.drawString("1", 1030, 340);
g.drawString("9", 930, 305);
g.drawString("3", 960, 470);
g.drawString("2", 820, 470);
g.drawString("12", 525, 100);
} else if (valoare == 12) {
g.drawLine(670, 70, 762, 137);//ramura dreapta
g.drawLine(762, 137, 752, 137);//ramura dreapta
g.drawLine(762, 137, 762, 127);//ramura dreapta
g.drawString("3", 520, 390);
} else if (valoare == 13) {
g.drawLine(813, 165, 883, 256);//ramura dreapta
g.drawLine(883, 256, 873, 256);//ramura dreapta
g.drawLine(883, 256, 883, 246);//ramura dreapta
g.drawString("5", 540, 390);
} else if (valoare == 14) {
g.drawLine(915, 276, 985, 276);//ramura dreapta
g.drawLine(985, 276, 972, 269);//ramura dreapta
g.drawLine(985, 276, 972, 284);//ramura dreapta
g.drawString("7", 560, 390);
} else if (valoare == 15) {
g.drawLine(1020, 313, 1020, 390);//ramura dreapta
g.drawLine(1020, 390, 1010, 380);//ramura dreapta
g.drawLine(1020, 390, 1030, 380);//ramura dreapta
g.drawString("10", 580, 390);
}
//Liniile
g.drawLine(500, 370, 600, 370);
g.drawLine(500, 395, 600, 395);
g.drawString("1", 500, 390);
}
}
Parcurgere in latime
import java.applet.Applet;
import java.awt.Button;
import java.awt.Color;
import java.awt.Event;
import java.awt.Font;
import java.awt.Graphics;
public class index extends Applet {
Font f = new Font("Calibri", Font.BOLD, 20);
int valoare = 0;
Button next;
@Override
public void init() {
next = new Button("Urmatoarea ramura");
add(next);
}
@Override
public boolean action(Event e, Object args) {
if (e.target == next) //target = apasa
{
valoare++;
}
addNode();
return true;
}
@Override
public void paint(Graphics g) {
setBackground(Color.gray);
}
public void addNode() {
Graphics g = this.getGraphics();
g.setFont(f);
g.drawString("Parcurgere în lăţime", 20, 20);
g.drawRoundRect(615, 40, 40, 40, 40, 40);
g.drawString("1", 631, 67);
if (valoare == 2) {
g.drawRoundRect(460, 140, 40, 40, 40, 40);
g.drawLine(616, 70, 500, 150);// ramura stinga
g.drawString("2", 475, 166);
} else if (valoare == 3) {
g.drawRoundRect(760, 140, 40, 40, 40, 40);
g.drawString("3", 775, 166);
g.drawLine(656, 70, 762, 150);//ramura dreapta
} else if (valoare == 4) {
g.drawRoundRect(338, 268, 40, 40, 40, 40);//1 inel
g.drawString("4", 353, 294);
g.drawLine(460, 165, 370, 270);//ramura stinga
} else if (valoare == 5) {
g.drawRoundRect(568, 268, 40, 40, 40, 40);//2 inel
g.drawString("5", 583, 294);
g.drawLine(500, 165, 580, 270);//ramura dreapta
} else if (valoare == 6) {
g.drawRoundRect(640, 268, 40, 40, 40, 40);//3 inel
g.drawString("6", 655, 294);
g.drawLine(760, 165, 670, 270);//ramura stinga
} else if (valoare == 7) {
g.drawRoundRect(870, 268, 40, 40, 40, 40);//4 inel
g.drawString("7", 885, 294);
g.drawLine(800, 165, 880, 270);//ramura dreapta
} else if (valoare == 8) {
g.drawRoundRect(240, 398, 40, 40, 40, 40);//1 inel
g.drawString("8", 255, 424);
g.drawLine(340, 300, 270, 400);//ramura stinga
}
else if (valoare == 9) {
g.drawLine(600, 70, 510, 130);// linia de la sageata
g.drawLine(510, 130, 510, 120);//de la sageata linia in sus
g.drawLine(510, 130, 520, 130);//de la sageata linia orizont
g.drawString("2", 520, 490);
} else if (valoare == 10) {
g.drawLine(510, 160, 740, 160);
g.drawLine(740, 160, 730, 150);
g.drawLine(740, 160, 730, 170);
g.drawString("3", 540, 490);
} else if (valoare == 11) {
g.drawString("4", 560, 490);
g.drawLine(720, 175, 390, 275);
g.drawLine(390, 275, 405, 280);
g.drawLine(390, 275, 400, 265);
} else if (valoare == 12) {
g.drawString("5", 580, 490);
g.drawLine(400, 290, 550, 290);
g.drawLine(550, 290, 540, 280);
g.drawLine(550, 290, 540, 300);
}
else if (valoare == 13) {
g.drawString("6", 600, 490);
g.drawLine(613, 290, 637, 290);
g.drawLine( 637, 290, 630, 300);
g.drawLine( 637, 290, 630, 280);
}
else if (valoare == 14) {
g.drawString("7", 620, 490);
g.drawLine(700, 290, 850, 290);
g.drawLine(850, 290, 840, 280);
g.drawLine(850, 290, 840, 300);
}
else if (valoare == 15) {
g.drawString("8", 640, 490);
g.drawLine( 285, 415, 865, 305 );
g.drawLine( 285, 415, 295, 405);
g.drawLine( 285, 415, 296, 420);
}
//Liniile
g.drawLine(500, 470, 650, 470);
g.drawLine(500, 495, 650, 495);
g.drawString("1", 500, 490);
}
}
Cautare in adancime limitata
import java.applet.Applet;
import java.awt.Button;
import java.awt.Event;
import java.awt.Font;
import java.awt.Graphics;
public class index extends Applet {
Font f = new Font("Calibri", Font.BOLD, 20);
int valoare = 0;
Button next;
@Override
public void init() {
next = new Button("Urmatoarea ramura");
add(next);
}
@Override
public boolean action(Event e, Object args) {
if (e.target == next) //target = apasa
{
valoare++;
}
addNode();
return true;
}
@Override
public void paint(Graphics g) {
}
public void addNode() {
Graphics g = this.getGraphics();
g.setFont(f);
g.drawString("Cautare in adincime limitata ", 20, 20);
g.drawString("Lungimea = 2", 20, 50);
g.drawRoundRect(615, 40, 40, 40, 40, 40);
g.drawString("1", 631, 67);
g.drawString("n=0", 431, 67);
if (valoare == 2) {
g.drawRoundRect(460, 140, 40, 40, 40, 40);
g.drawLine(616, 70, 500, 150);// ramura stinga
g.drawString("2", 475, 166);
g.drawString("n=1", 275, 166);
} else if (valoare == 3) {
g.drawRoundRect(760, 140, 40, 40, 40, 40);
g.drawString("3", 775, 166);
g.drawLine(656, 70, 762, 150);//ramura dreapta
} else if (valoare == 4) {
g.drawRoundRect(338, 268, 40, 40, 40, 40);//1 inel
g.drawString("4", 353, 294);
g.drawString("n=2", 163, 294);
g.drawLine(460, 165, 370, 270);//ramura stinga
} else if (valoare == 5) {
g.drawRoundRect(568, 268, 40, 40, 40, 40);//2 inel
g.drawString("5", 583, 294);
g.drawLine(500, 165, 580, 270);//ramura dreapta
} else if (valoare == 6) {
g.drawRoundRect(640, 268, 40, 40, 40, 40);//3 inel
g.drawString("6", 655, 294);
g.drawLine(760, 165, 670, 270);//ramura stinga
// g.drawLine(747, 165, 682, 240);//linia sageata
// g.drawLine(682, 240, 682, 230);//linia in sus
// g.drawLine(682, 240, 692, 240);//linia in dreapta ... sageata
} else if (valoare == 7) {
g.drawRoundRect(870, 268, 40, 40, 40, 40);//4 inel
g.drawString("7", 885, 294);
g.drawLine(800, 165, 880, 270);//ramura dreapta
// g.drawLine(814, 165, 870, 240);//linia sageata
// g.drawLine(870, 240, 870, 230);//sageata in uss
// g.drawLine(870, 240, 860, 240);//sageata in stinga
}else if (valoare == 8) {
g.drawRoundRect(240, 398, 40, 40, 40, 40);//1 inel
g.drawString("8", 255, 424);
g.drawLine(340, 300, 270, 400);//ramura stinga
} else if (valoare == 9) {
g.drawLine(600, 70, 510, 130);// linia de la sageata
g.drawLine(510, 130, 510, 120);//de la sageata linia in sus
g.drawLine(510, 130, 520, 130);//de la sageata linia orizont
g.drawString("2", 520, 490);
} else if (valoare == 10) {
g.drawLine(447, 165, 382, 240);//linia sageata
g.drawLine(382, 240, 382, 230);//linia in sus
g.drawLine(382, 240, 392, 240);//linia in dreapta ... sageata
g.drawString("4", 540, 490);
}
/*
else if (valoare == 11) {
g.drawLine(328, 300, 272, 380);//
g.drawLine(272, 380, 282, 380);// in dreapta linia
g.drawLine(272, 380, 272, 370);//
g.drawString("8", 560, 490);
}
else if (valoare == 12) {
g.drawLine(345, 315, 289, 395);//
g.drawLine(345, 315, 335, 315);//
g.drawLine(345, 315, 345, 325);//
g.drawString("4", 580, 490);
}
*/
else if (valoare == 11) {
g.drawLine(458, 185, 401, 251);//linia sageata
g.drawLine(448, 185, 458, 185);//linia sageata in dreapta
g.drawLine(458, 195, 458, 185);//linia sageata in dreapta
g.drawString("2", 560, 490);
} else if (valoare == 12) {
g.drawLine(514, 165, 570, 240);//linia sageata
g.drawLine(570, 240, 570, 230);//sageata in uss
g.drawLine(570, 240, 560, 240);//sageata in stinga
g.drawString("5", 580, 490);
} else if (valoare == 13) {
g.drawLine(500, 185, 550, 250);//linia sageata
g.drawLine(500, 185, 500, 195);//linia sageata in jos
g.drawLine(500, 185, 510, 185);
g.drawString("2", 600, 490);
} else if (valoare == 14) {
g.drawLine(616, 85, 534, 140);// linia de la sageata
g.drawLine(616, 85, 606, 85);// linia de la sageata in sus
g.drawLine(616, 85, 616, 95);// linia din jos de la sageata
g.drawString("1", 620, 490);
} else if (valoare == 15) {
g.drawLine(672, 70, 752, 130);//linia de la sageata
g.drawLine(752, 130, 742, 130);//linia de la sageata
g.drawLine(752, 130, 752, 120);//linia de la sageata
g.drawString("1-3", 620, 490);
/* g.drawLine(672, 70, 752, 130);//linia de la sageata
g.drawLine(672, 70, 682, 70);//linia de la sageata in jos
g.drawLine(672, 70, 672, 80);//linia de la sageata in jos
*/
} else if (valoare == 16) {
g.drawLine(758, 185, 701, 251);//linia sageata
g.drawLine(701, 251, 711, 251);//linia sageata
g.drawLine(701, 251, 701, 241);//linia sageata
g.drawString("6", 657, 490);
} else if (valoare == 17) {
g.drawLine(747, 165, 682, 240);//linia sageata
g.drawLine(747, 165, 737, 165);
g.drawLine(747, 165, 747, 175);
g.drawString("3", 680, 490);
} else if (valoare == 18) {
g.drawLine(814, 165, 870, 240);//linia sageata
g.drawLine(870, 240, 870, 230);//sageata in uss
g.drawLine(870, 240, 860, 240);//sageata in stinga
g.drawString("7", 700, 490);
}
//Liniile
g.drawLine(500, 470, 712, 470);
g.drawLine(500, 495, 712, 495);
g.drawString("1", 500, 490);
}
}
Parcurgere in adincime
import java.applet.Applet;
import java.awt.Button;
import java.awt.Event;
import java.awt.Font;
import java.awt.Graphics;
public class index extends Applet {
Font f = new Font("Calibri", Font.BOLD, 20);
int valoare = 0;
Button next;
@Override
public void init() {
next = new Button("Urmatoarea ramura");
add(next);
}
@Override
public boolean action(Event e, Object args) {
if (e.target == next) //target = apasa
{
valoare++;
}
addNode();
return true;
}
@Override
public void paint(Graphics g) {
}
public void addNode() {
Graphics g = this.getGraphics();
g.setFont(f);
g.drawString("Parcurgere in adâncime", 20, 20);
g.drawRoundRect(615, 40, 40, 40, 40, 40);
g.drawString("1", 631, 67);
if (valoare == 2) {
g.drawRoundRect(460, 140, 40, 40, 40, 40);
g.drawLine(616, 70, 500, 150);// ramura stinga
g.drawString("2", 475, 166);
} else if (valoare == 3) {
g.drawRoundRect(760, 140, 40, 40, 40, 40);
g.drawString("3", 775, 166);
g.drawLine(656, 70, 762, 150);//ramura dreapta
} else if (valoare == 4) {
g.drawRoundRect(338, 268, 40, 40, 40, 40);//1 inel
g.drawString("4", 353, 294);
g.drawLine(460, 165, 370, 270);//ramura stinga
} else if (valoare == 5) {
g.drawRoundRect(568, 268, 40, 40, 40, 40);//2 inel
g.drawString("5", 583, 294);
g.drawLine(500, 165, 580, 270);//ramura dreapta
} else if (valoare == 6) {
g.drawRoundRect(640, 268, 40, 40, 40, 40);//3 inel
g.drawString("6", 655, 294);
g.drawLine(760, 165, 670, 270);//ramura stinga
// g.drawLine(747, 165, 682, 240);//linia sageata
// g.drawLine(682, 240, 682, 230);//linia in sus
// g.drawLine(682, 240, 692, 240);//linia in dreapta ... sageata
} else if (valoare == 7) {
g.drawRoundRect(870, 268, 40, 40, 40, 40);//4 inel
g.drawString("7", 885, 294);
g.drawLine(800, 165, 880, 270);//ramura dreapta
// g.drawLine(814, 165, 870, 240);//linia sageata
// g.drawLine(870, 240, 870, 230);//sageata in uss
// g.drawLine(870, 240, 860, 240);//sageata in stinga
} else if (valoare == 8) {
g.drawRoundRect(240, 398, 40, 40, 40, 40);//1 inel
g.drawString("8", 255, 424);
g.drawLine(340, 300, 270, 400);//ramura stinga
} else if (valoare == 9) {
g.drawLine(600, 70, 510, 130);// linia de la sageata
g.drawLine(510, 130, 510, 120);//de la sageata linia in sus
g.drawLine(510, 130, 520, 130);//de la sageata linia orizont
g.drawString("2", 520, 490);
} else if (valoare == 10) {
g.drawLine(447, 165, 382, 240);//linia sageata
g.drawLine(382, 240, 382, 230);//linia in sus
g.drawLine(382, 240, 392, 240);//linia in dreapta ... sageata
g.drawString("4", 540, 490);
} else if (valoare == 11) {
g.drawLine(328, 300, 272, 380);//
g.drawLine(272, 380, 282, 380);// in dreapta linia
g.drawLine(272, 380, 272, 370);//
g.drawString("8", 560, 490);
} else if (valoare == 12) {
g.drawLine(345, 315, 289, 395);//
g.drawLine(345, 315, 335, 315);//
g.drawLine(345, 315, 345, 325);//
g.drawString("4", 580, 490);
} else if (valoare == 13) {
g.drawLine(458, 185, 401, 251);//linia sageata
g.drawLine(448, 185, 458, 185);//linia sageata in dreapta
g.drawLine(458, 195, 458, 185);//linia sageata in dreapta
g.drawString("2", 600, 490);
} else if (valoare == 14) {
g.drawLine(514, 165, 570, 240);//linia sageata
g.drawLine(570, 240, 570, 230);//sageata in uss
g.drawLine(570, 240, 560, 240);//sageata in stinga
g.drawString("5", 620, 490);
} else if (valoare == 15) {
g.drawLine(500, 185, 550, 250);//linia sageata
g.drawLine(500, 185, 500, 195);//linia sageata in jos
g.drawLine(500, 185, 510, 185);
g.drawString("2", 640, 490);
} else if (valoare == 16) {
g.drawLine(616, 85, 534, 140);// linia de la sageata
g.drawLine(616, 85, 606, 85);// linia de la sageata in sus
g.drawLine(616, 85, 616, 95);// linia din jos de la sageata
g.drawString("1", 660, 490);
} else if (valoare == 17) {
g.drawLine(672, 70, 752, 130);//linia de la sageata
g.drawLine(752, 130, 742, 130);//linia de la sageata
g.drawLine(752, 130, 752, 120);//linia de la sageata
g.drawString("1-3", 680, 490);
/* g.drawLine(672, 70, 752, 130);//linia de la sageata
g.drawLine(672, 70, 682, 70);//linia de la sageata in jos
g.drawLine(672, 70, 672, 80);//linia de la sageata in jos
*/
} else if (valoare == 18) {
g.drawLine(758, 185, 701, 251);//linia sageata
g.drawLine(701, 251, 711, 251);//linia sageata
g.drawLine(701, 251, 701, 241);//linia sageata
g.drawString("6", 717, 490);
} else if (valoare == 19) {
g.drawLine(747, 165, 682, 240);//linia sageata
g.drawLine(747, 165, 737, 165);
g.drawLine(747, 165, 747, 175);
g.drawString("3", 740, 490);
} else if (valoare == 20) {
g.drawLine(814, 165, 870, 240);//linia sageata
g.drawLine(870, 240, 870, 230);//sageata in uss
g.drawLine(870, 240, 860, 240);//sageata in stinga
g.drawString("7", 760, 490);
}
//Liniile
g.drawLine(500, 470, 769, 470);
g.drawLine(500, 495, 769, 495);
g.drawString("1", 500, 490);
}
}
Cautare iterativa in adincime
import java.applet.Applet;
import java.awt.Button;
import java.awt.Event;
import java.awt.Font;
import java.awt.Graphics;
public class index extends Applet {
Font f = new Font("Calibri", Font.BOLD, 20);
int valoare = 0;
Button next;
@Override
public void init() {
next = new Button("Urmatoarea ramura");
add(next);
}
@Override
public boolean action(Event e, Object args) {
if (e.target == next) //target = apasa
{
valoare++;
}
addNode();
return true;
}
@Override
public void paint(Graphics g) {
}
public void addNode() {
Graphics g = this.getGraphics();
g.setFont(f);
g.drawString("Cautare iterativa in adincime", 20, 20);
g.drawRoundRect(615, 40, 40, 40, 40, 40);
g.drawString("1", 631, 67);
if (valoare == 2) {
g.drawRoundRect(460, 140, 40, 40, 40, 40);
g.drawLine(616, 70, 500, 150);// ramura stinga
g.drawString("2", 475, 166);
} else if (valoare == 3) {
g.drawRoundRect(760, 140, 40, 40, 40, 40);
g.drawString("3", 775, 166);
g.drawLine(656, 70, 762, 150);//ramura dreapta
} else if (valoare == 4) {
g.drawRoundRect(338, 268, 40, 40, 40, 40);//1 inel
g.drawString("4", 353, 294);
g.drawLine(460, 165, 370, 270);//ramura stinga
} else if (valoare == 5) {
g.drawRoundRect(568, 268, 40, 40, 40, 40);//2 inel
g.drawString("5", 583, 294);
g.drawLine(500, 165, 580, 270);//ramura dreapta
} else if (valoare == 6) {
g.drawRoundRect(640, 268, 40, 40, 40, 40);//3 inel
g.drawString("6", 655, 294);
g.drawLine(760, 165, 670, 270);//ramura stinga
// g.drawLine(747, 165, 682, 240);//linia sageata
// g.drawLine(682, 240, 682, 230);//linia in sus
// g.drawLine(682, 240, 692, 240);//linia in dreapta ... sageata
} else if (valoare == 7) {
g.drawRoundRect(870, 268, 40, 40, 40, 40);//4 inel
g.drawString("7", 885, 294);
g.drawLine(800, 165, 880, 270);//ramura dreapta
// g.drawLine(814, 165, 870, 240);//linia sageata
// g.drawLine(870, 240, 870, 230);//sageata in uss
// g.drawLine(870, 240, 860, 240);//sageata in stinga
} else if (valoare == 8) {
g.drawRoundRect(240, 398, 40, 40, 40, 40);//1 inel
g.drawString("8", 255, 424);
g.drawLine(340, 300, 270, 400);//ramura stinga
} else if (valoare == 9) {
g.drawLine(600, 70, 510, 130);// linia de la sageata
g.drawLine(510, 130, 510, 120);//de la sageata linia in sus
g.drawLine(510, 130, 520, 130);//de la sageata linia orizont
g.drawString("2", 520, 490);
} else if (valoare == 10) {
g.drawLine(447, 165, 382, 240);//linia sageata
g.drawLine(382, 240, 382, 230);//linia in sus
g.drawLine(382, 240, 392, 240);//linia in dreapta ... sageata
g.drawString("4", 540, 490);
} else if (valoare == 11) {
g.drawLine(328, 300, 272, 380);//
g.drawLine(272, 380, 282, 380);// in dreapta linia
g.drawLine(272, 380, 272, 370);//
g.drawString("8", 560, 490);
} else if (valoare == 12) {
g.drawLine(345, 315, 289, 395);//
g.drawLine(345, 315, 335, 315);//
g.drawLine(345, 315, 345, 325);//
g.drawString("4", 580, 490);
} else if (valoare == 13) {
g.drawLine(458, 185, 401, 251);//linia sageata
g.drawLine(448, 185, 458, 185);//linia sageata in dreapta
g.drawLine(458, 195, 458, 185);//linia sageata in dreapta
g.drawString("2", 600, 490);
} else if (valoare == 14) {
g.drawLine(514, 165, 570, 240);//linia sageata
g.drawLine(570, 240, 570, 230);//sageata in uss
g.drawLine(570, 240, 560, 240);//sageata in stinga
g.drawString("5", 620, 490);
} else if (valoare == 15) {
g.drawLine(500, 185, 550, 250);//linia sageata
g.drawLine(500, 185, 500, 195);//linia sageata in jos
g.drawLine(500, 185, 510, 185);
g.drawString("2", 640, 490);
} else if (valoare == 16) {
g.drawLine(616, 85, 534, 140);// linia de la sageata
g.drawLine(616, 85, 606, 85);// linia de la sageata in sus
g.drawLine(616, 85, 616, 95);// linia din jos de la sageata
g.drawString("1", 660, 490);
} else if (valoare == 17) {
g.drawLine(672, 70, 752, 130);//linia de la sageata
g.drawLine(752, 130, 742, 130);//linia de la sageata
g.drawLine(752, 130, 752, 120);//linia de la sageata
g.drawString("1-3", 680, 490);
/* g.drawLine(672, 70, 752, 130);//linia de la sageata
g.drawLine(672, 70, 682, 70);//linia de la sageata in jos
g.drawLine(672, 70, 672, 80);//linia de la sageata in jos
*/
} else if (valoare == 18) {
g.drawLine(758, 185, 701, 251);//linia sageata
g.drawLine(701, 251, 711, 251);//linia sageata
g.drawLine(701, 251, 701, 241);//linia sageata
g.drawString("6", 717, 490);
} else if (valoare == 19) {
g.drawLine(747, 165, 682, 240);//linia sageata
g.drawLine(747, 165, 737, 165);
g.drawLine(747, 165, 747, 175);
g.drawString("3", 740, 490);
} else if (valoare == 20) {
g.drawLine(814, 165, 870, 240);//linia sageata
g.drawLine(870, 240, 870, 230);//sageata in uss
g.drawLine(870, 240, 860, 240);//sageata in stinga
g.drawString("7", 760, 490);
}
//Liniile
g.drawLine(500, 470, 769, 470);
g.drawLine(500, 495, 769, 495);
g.drawString("1", 500, 490);
}
}
Arbore bidirectional Complet
import java.applet.Applet;
import java.awt.Button;
import java.awt.Event;
import java.awt.Font;
import java.awt.Graphics;
public class index extends Applet {
Font f = new Font("Calibri", Font.BOLD, 20);
int valoare = 0;
Button next;
@Override
public void init() {
next = new Button("Urmatoarea ramura");
add(next);
}
@Override
public boolean action(Event e, Object args) {
if (e.target == next) //target = apasa
{
valoare++;
}
addNode();
return true;
}
@Override
public void paint(Graphics g) {
}
public void addNode() {
Graphics g = this.getGraphics();
g.setFont(f);
g.drawString("Cautare Bidirectionala", 20, 20);
g.drawRoundRect(615, 40, 40, 40, 40, 40);
g.drawString("1", 631, 67);
if (valoare == 2) {
g.drawRoundRect(460, 140, 40, 40, 40, 40);
g.drawLine(616, 70, 500, 150);// ramura stinga
g.drawString("2", 475, 166);
} else if (valoare == 3) {
g.drawRoundRect(760, 140, 40, 40, 40, 40);
g.drawString("3", 775, 166);
g.drawLine(656, 70, 762, 150);//ramura dreapta
} else if (valoare == 4) {
g.drawRoundRect(338, 268, 40, 40, 40, 40);//1 inel
g.drawString("4", 353, 294);
g.drawLine(460, 165, 370, 270);//ramura stinga
} else if (valoare == 5) {
g.drawRoundRect(568, 268, 40, 40, 40, 40);//2 inel
g.drawString("5", 583, 294);
g.drawLine(500, 165, 580, 270);//ramura dreapta
} else if (valoare == 6) {
g.drawRoundRect(640, 268, 40, 40, 40, 40);//3 inel
g.drawString("6", 655, 294);
g.drawLine(760, 165, 670, 270);//ramura stinga
// g.drawLine(747, 165, 682, 240);//linia sageata
// g.drawLine(682, 240, 682, 230);//linia in sus
// g.drawLine(682, 240, 692, 240);//linia in dreapta ... sageata
} else if (valoare == 7) {
g.drawRoundRect(870, 268, 40, 40, 40, 40);//4 inel
g.drawString("7", 885, 294);
g.drawLine(800, 165, 880, 270);//ramura dreapta
// g.drawLine(814, 165, 870, 240);//linia sageata
// g.drawLine(870, 240, 870, 230);//sageata in uss
// g.drawLine(870, 240, 860, 240);//sageata in stinga
} else if (valoare == 8) {
g.drawRoundRect(240, 398, 40, 40, 40, 40);//1 inel
g.drawString("8", 255, 424);
g.drawLine(340, 300, 270, 400);//ramura stinga
} else if (valoare == 9) {
g.drawLine(600, 70, 510, 130);// linia de la sageata
g.drawLine(510, 130, 510, 120);//de la sageata linia in sus
g.drawLine(510, 130, 520, 130);//de la sageata linia orizont
g.drawString("2",520, 490);
} else if (valoare == 10) {
g.drawLine(447, 165, 382, 240);//linia sageata
g.drawLine(382, 240, 382, 230);//linia in sus
g.drawLine(382, 240, 392, 240);//linia in dreapta ... sageata
g.drawString("4",540, 490);
} else if (valoare == 11) {
g.drawLine(328, 300, 272, 380);//
g.drawLine(272, 380, 282, 380);// in dreapta linia
g.drawLine(272, 380, 272, 370);//
g.drawString("8",560, 490);
} else if (valoare == 12) {
g.drawLine(345, 315, 289, 395);//
g.drawLine(345, 315, 335, 315);//
g.drawLine(345, 315, 345, 325);//
g.drawString("4",580, 490);
} else if (valoare == 13) {
g.drawLine(458, 185, 401, 251);//linia sageata
g.drawLine(448, 185, 458, 185);//linia sageata in dreapta
g.drawLine(458, 195, 458, 185);//linia sageata in dreapta
g.drawString("2",600, 490);
} else if (valoare == 14) {
g.drawLine(514, 165, 570, 240);//linia sageata
g.drawLine(570, 240, 570, 230);//sageata in uss
g.drawLine(570, 240, 560, 240);//sageata in stinga
g.drawString("5",620, 490);
} else if (valoare == 15) {
g.drawLine(500, 185, 550, 250);//linia sageata
g.drawLine(500, 185, 500, 195);//linia sageata in jos
g.drawLine(500, 185, 510, 185);
g.drawString("2",640, 490);
} else if (valoare == 16) {
g.drawLine(616, 85, 534, 140);// linia de la sageata
g.drawLine(616, 85, 606, 85);// linia de la sageata in sus
g.drawLine(616, 85, 616, 95);// linia din jos de la sageata
g.drawString("1",660, 490);
} else if (valoare == 17) {
g.drawLine(758, 185, 701, 251);//linia sageata
g.drawLine(748, 185, 758, 185);//linia sageata in dreapta
g.drawLine(758, 195, 758, 185);//linia sageata in jos
g.drawString("6-3",680, 490);
} else if (valoare == 18) {
g.drawLine(672, 70, 752, 130);//linia de la sageata
g.drawLine(672, 70, 682, 70);//linia de la sageata in jos
g.drawLine(672, 70, 672, 80);//linia de la sageata in jos
g.drawString("1",720, 490);
}
//Liniile
g.drawLine(500, 470, 732, 470);
g.drawLine(500, 495, 732, 495);
g.drawString("1",500, 490);
}
}
import java.awt.Button;
import java.awt.Event;
import java.awt.Font;
import java.awt.Graphics;
public class index extends Applet {
Font f = new Font("Calibri", Font.BOLD, 20);
int valoare = 0;
Button next;
@Override
public void init() {
next = new Button("Urmatoarea ramura");
add(next);
}
@Override
public boolean action(Event e, Object args) {
if (e.target == next) //target = apasa
{
valoare++;
}
addNode();
return true;
}
@Override
public void paint(Graphics g) {
}
public void addNode() {
Graphics g = this.getGraphics();
g.setFont(f);
g.drawString("Cautare Bidirectionala", 20, 20);
g.drawRoundRect(615, 40, 40, 40, 40, 40);
g.drawString("1", 631, 67);
if (valoare == 2) {
g.drawRoundRect(460, 140, 40, 40, 40, 40);
g.drawLine(616, 70, 500, 150);// ramura stinga
g.drawString("2", 475, 166);
} else if (valoare == 3) {
g.drawRoundRect(760, 140, 40, 40, 40, 40);
g.drawString("3", 775, 166);
g.drawLine(656, 70, 762, 150);//ramura dreapta
} else if (valoare == 4) {
g.drawRoundRect(338, 268, 40, 40, 40, 40);//1 inel
g.drawString("4", 353, 294);
g.drawLine(460, 165, 370, 270);//ramura stinga
} else if (valoare == 5) {
g.drawRoundRect(568, 268, 40, 40, 40, 40);//2 inel
g.drawString("5", 583, 294);
g.drawLine(500, 165, 580, 270);//ramura dreapta
} else if (valoare == 6) {
g.drawRoundRect(640, 268, 40, 40, 40, 40);//3 inel
g.drawString("6", 655, 294);
g.drawLine(760, 165, 670, 270);//ramura stinga
// g.drawLine(747, 165, 682, 240);//linia sageata
// g.drawLine(682, 240, 682, 230);//linia in sus
// g.drawLine(682, 240, 692, 240);//linia in dreapta ... sageata
} else if (valoare == 7) {
g.drawRoundRect(870, 268, 40, 40, 40, 40);//4 inel
g.drawString("7", 885, 294);
g.drawLine(800, 165, 880, 270);//ramura dreapta
// g.drawLine(814, 165, 870, 240);//linia sageata
// g.drawLine(870, 240, 870, 230);//sageata in uss
// g.drawLine(870, 240, 860, 240);//sageata in stinga
} else if (valoare == 8) {
g.drawRoundRect(240, 398, 40, 40, 40, 40);//1 inel
g.drawString("8", 255, 424);
g.drawLine(340, 300, 270, 400);//ramura stinga
} else if (valoare == 9) {
g.drawLine(600, 70, 510, 130);// linia de la sageata
g.drawLine(510, 130, 510, 120);//de la sageata linia in sus
g.drawLine(510, 130, 520, 130);//de la sageata linia orizont
g.drawString("2",520, 490);
} else if (valoare == 10) {
g.drawLine(447, 165, 382, 240);//linia sageata
g.drawLine(382, 240, 382, 230);//linia in sus
g.drawLine(382, 240, 392, 240);//linia in dreapta ... sageata
g.drawString("4",540, 490);
} else if (valoare == 11) {
g.drawLine(328, 300, 272, 380);//
g.drawLine(272, 380, 282, 380);// in dreapta linia
g.drawLine(272, 380, 272, 370);//
g.drawString("8",560, 490);
} else if (valoare == 12) {
g.drawLine(345, 315, 289, 395);//
g.drawLine(345, 315, 335, 315);//
g.drawLine(345, 315, 345, 325);//
g.drawString("4",580, 490);
} else if (valoare == 13) {
g.drawLine(458, 185, 401, 251);//linia sageata
g.drawLine(448, 185, 458, 185);//linia sageata in dreapta
g.drawLine(458, 195, 458, 185);//linia sageata in dreapta
g.drawString("2",600, 490);
} else if (valoare == 14) {
g.drawLine(514, 165, 570, 240);//linia sageata
g.drawLine(570, 240, 570, 230);//sageata in uss
g.drawLine(570, 240, 560, 240);//sageata in stinga
g.drawString("5",620, 490);
} else if (valoare == 15) {
g.drawLine(500, 185, 550, 250);//linia sageata
g.drawLine(500, 185, 500, 195);//linia sageata in jos
g.drawLine(500, 185, 510, 185);
g.drawString("2",640, 490);
} else if (valoare == 16) {
g.drawLine(616, 85, 534, 140);// linia de la sageata
g.drawLine(616, 85, 606, 85);// linia de la sageata in sus
g.drawLine(616, 85, 616, 95);// linia din jos de la sageata
g.drawString("1",660, 490);
} else if (valoare == 17) {
g.drawLine(758, 185, 701, 251);//linia sageata
g.drawLine(748, 185, 758, 185);//linia sageata in dreapta
g.drawLine(758, 195, 758, 185);//linia sageata in jos
g.drawString("6-3",680, 490);
} else if (valoare == 18) {
g.drawLine(672, 70, 752, 130);//linia de la sageata
g.drawLine(672, 70, 682, 70);//linia de la sageata in jos
g.drawLine(672, 70, 672, 80);//linia de la sageata in jos
g.drawString("1",720, 490);
}
//Liniile
g.drawLine(500, 470, 732, 470);
g.drawLine(500, 495, 732, 495);
g.drawString("1",500, 490);
}
}
Arborele cu Canile
import java.applet.*;
import java.awt.*;
public class indexa extends Applet {
Font f = new Font("Calibri", Font.BOLD, 15);
Image foto1_1;
Image foto2_1;
Button next;
int valoare = 1;
int xAxe = 50;
int yAxe = 50;
int xDistance = 25;
int xMax = xDistance * 11;
int yDistance = 70;
int iRow = 0;
@Override
public void init() {
next = new Button("Urmatoarea ramura");
add(next);
foto1_1 = getImage(getCodeBase(), "C://prima.jpg");
foto2_1 = getImage(getCodeBase(), "http://lh6.ggpht.com/_o_fmYGxbRH4/TOwA1nYj_aI/AAAAAAAAC5c/BlZYMY7w7jI/a_doua.jpg");
}
@Override
public boolean action(Event e, Object args) {
if (e.target == next) //target = apasa
{
/*
if (valoare == 1 || valoare == 3 || valoare == 9) {
xAxe = xDistance;
yAxe += yDistance;
iRow++;
}
*/
valoare++;
}
addNode();
return true;
}
@Override
public void paint(Graphics g) {
// if (valoare == 2) {
//prima cana
int latime = foto1_1.getWidth(this);
int inaltime = foto1_1.getHeight(this);
g.drawImage(foto1_1, 800, 150, inaltime, latime, this); //cana care toarna prima
g.drawImage(foto2_1, 1050, 150, inaltime, latime, this); //cana a doua
// NIVEL 0 central
// g.setFont(f);
// g.drawString("S0(0,0)", xDistance + xAxe, yAxe);
// }
}
public void addNode() {
/*
Graphics gDraw = this.getGraphics();
xAxe += (xDistance + xMax/iRow);
gDraw.drawString("S" + (valoare - 1) + "(3,0)", xAxe, yAxe);
if (valoare == 2) {
//gDraw.drawLine(350, 50, 250, 100);//ramura stanga
}
else if(valoare == 3) {
//gDraw.drawLine(350, 50, 450, 100);//ramura dreapta
}
*/
//Graphics g = gDraw;
Graphics g = this.getGraphics();
g.drawRect(20, 2, 1240, 690); // Un patrat
g.setFont(f);
g.drawString("So(0,0)", 328, 50);
if (valoare == 3) {
g.drawLine(350, 50, 250, 100);//ramura stinga
g.drawString("S1(3,0)", 223, 112);
} else if (valoare == 4) {
g.drawLine(350, 50, 450, 100);//ramura dreapta
g.drawString("S2(0,4)", 445, 112);
} else if (valoare == 5) {
// NIVEL 1 ramura stinga
g.drawLine(235, 117, 140, 170);//ramura stinga
g.drawString("S3(3,4)", 117, 182);
} else if (valoare == 6) {
g.drawLine(235, 117, 230, 170);//ramura centrala
g.drawString("S4(0,0)", 210, 182);
} else if (valoare == 7) {
g.drawLine(235, 117, 315, 170);//ramura dreapta
g.drawString("S5(0,3)", 300, 182);
} // NIVEL 1 ramura dreapta
else if (valoare == 8) {
g.drawLine(465, 117, 425, 170);//ramura stinga
g.drawString("S6(3,4)", 410, 182);
} else if (valoare == 9) {
g.drawLine(465, 117, 535, 170);//ramura centrala
g.drawString("S7(0,0)", 510, 182);
} else if (valoare == 10) {
g.drawLine(465, 117, 635, 170);//ramura dreapta
g.drawString("S8(3,1)", 610, 182);
} //NIVEL 2 partea 1
else if (valoare == 11) {
g.drawLine(130, 188, 65, 240);//ramura stinga
g.drawString("S9(3,4)", 40, 253);
} else if (valoare == 12) {
g.drawLine(130, 188, 120, 240);//ramura centrala
g.drawString("S10(3,4)", 100, 253);
} //NIVEL 2 partea 2
else if (valoare == 13) {
g.drawLine(320, 188, 200, 240);//ramura stinga
g.drawString("S11(3,4)", 170, 253);
} else if (valoare == 14) {
g.drawLine(320, 188, 270, 240);//ramura centrala
g.drawString("S12(3,4)", 240, 253);
} else if (valoare == 15) {
g.drawLine(320, 188, 330, 240);//ramura dreapta
g.drawString("S13(3,4)", 305, 253);
} //NIVEL 2 partea 3
else if (valoare == 16) {
g.drawLine(430, 188, 400, 240);//ramura centrala
g.drawString("S14(3,4)", 380, 253);
} else if (valoare == 17) {
g.drawLine(430, 188, 470, 240);//ramura dreapta
g.drawString("S15(3,4)", 450, 253);
} //NIVEL 2 partea 4
else if (valoare == 18) {
g.drawLine(620, 188, 545, 240);//ramura stinga
g.drawString("S16(3,4)", 515, 253);
} else if (valoare == 19) {
g.drawLine(620, 188, 615, 240);//ramura centrala
g.drawString("S17(3,4)", 590, 253);
} else if (valoare == 20) {
g.drawLine(620, 188, 680, 240);//ramura centrala
g.drawString("S18(3,4)", 660, 253);
} else if (valoare == 21) {
g.drawLine(620, 188, 755, 240);//ramura dreapta
g.drawString("S19(3,4)", 730, 253);
} // NIVEL 3 partea 1
else if (valoare == 22) {
g.drawLine(190, 260, 100, 320);//ramura stinga
g.drawString("S20(0,3)", 85, 333);
} else if (valoare == 23) {
g.drawLine(190, 260, 190, 320);//ramura centrala
g.drawString("S21(3,0)", 175, 333);
} else if (valoare == 24) {
g.drawLine(190, 260, 295, 320);//ramura dreapta
g.drawString("S22(2,4)", 280, 333);
} // NIVEL 3 partea 2
else if (valoare == 25) {
g.drawLine(620, 260, 545, 320);//ramura stinga
g.drawString("S23(3,1)", 515, 333);
} else if (valoare == 26) {
g.drawLine(620, 260, 615, 320);//ramura centrala
g.drawString("S24(0,4)", 590, 333);
} else if (valoare == 27) {
g.drawLine(620, 260, 680, 320);//ramura centrala
g.drawString("S25(0,0)", 660, 333);
} else if (valoare == 28) {
g.drawLine(620, 260, 755, 320);//ramura dreapta
g.drawString("S26(1,0)", 730, 333);
} // NIVEL 4 partea 1
else if (valoare == 29) {
g.drawLine(300, 338, 235, 400);//ramura stinga
g.drawString("S27(3,1)", 215, 413);
} else if (valoare == 30) {
g.drawLine(300, 338, 305, 400);//ramura centrala
g.drawString("S28(0,4)", 290, 413);
} else if (valoare == 31) {
g.drawLine(300, 338, 370, 400);//ramura centrala
g.drawString("S29(0,0)", 360, 413);
} else if (valoare == 32) {
g.drawLine(300, 338, 445, 400);//ramura dreapta
g.drawString("S30(1,0)", 430, 413);
} // NIVEL 4 partea 2
else if (valoare == 33) {
g.drawLine(755, 338, 635, 400);//ramura stinga
g.drawString("S31(3,1)", 615, 413);
} else if (valoare == 34) {
g.drawLine(755, 338, 710, 400);//ramura centrala
g.drawString("S32(0,0)", 685, 413);
} else if (valoare == 35) {
g.drawLine(755, 338, 775, 400);//ramura dreapta
g.drawString("S33(1,0)", 750, 413);
} // NIVEL 5 partea 1
else if (valoare == 36) {
g.drawLine(375, 418, 300, 480);//ramura stinga
g.drawString("S34(3,0)", 275, 495);
} else if (valoare == 37) {
g.drawLine(375, 418, 370, 480);//ramura centrala
g.drawString("S35(2,4)", 340, 495);
} else if (valoare == 38) {
g.drawLine(375, 418, 435, 480);//ramura centrala
g.drawString("S36(0,0)", 410, 495);
} else if (valoare == 39) {
g.drawLine(375, 418, 505, 480);//ramura dreapta
g.drawString("S37(0,2)", 480, 495);
} // NIVEL 5 partea 2
else if (valoare == 40) {
g.drawLine(700, 418, 600, 480);//ramura stinga
g.drawString("S38(3,4)", 575, 495);
} else if (valoare == 41) {
g.drawLine(700, 418, 670, 480);//ramura centrala
g.drawString("S39(0,4)", 640, 495);
} else if (valoare == 42) {
g.drawLine(700, 418, 735, 480);//ramura centrala
g.drawString("S40(1,0)", 710, 495);
} else if (valoare == 43) {
g.drawLine(700, 418, 805, 480);//ramura dreapta
g.drawString("S41(3,2)", 780, 495);
}
}
}
Abonați-vă la:
Postări (Atom)