Итак, вот оно. У меня было упражнение на экзаменах по структурам данных, где они дали нам класс «Студент» только с двумя атрибутами name (String) и grade (int) с сеттерами, геттерами и конструкторами. Также существовал класс TreeNode и класс BinarySearchTree . У нас был факт, что некоторые объекты Стьюдента были случайно помещены в BSTree . Таким образом, мы должны построить метод, который подсчитывает сколько учеников на дереве, которые не являются листьями дерева (у них есть по крайней мере 1 ребенок), они принадлежат только к правильное поддерево под root и иметь оценку, равную или превышающую 5. Как я могу реализовать это в Java?
public class Student {
private String onomep;
private int vathmos;
Student(String onomep, int vathmos) {
this.onomep = onomep;
this.vathmos = vathmos;
}
public void setOnomep(String newOnomep) {
onomep = newOnomep;
}
public void setVathmos(int newVathmos) {
vathmos = newVathmos;
}
public String getOnomep() {
return onomep;
}
public int getVathmos() {
return vathmos;
}
}
class TreeNode
{
private TreeNode left;
private int item;
private TreeNode right;
TreeNode(int data)
{
item = data;
left = right = null;
}
public int getNodeData()
{
return item;
}
public TreeNode getLeftNode()
{
return left;
}
public TreeNode getRightNode()
{
return right;
}
public boolean isLeaf()
{
return right == null && left == null;
}
public void setLeftNode(TreeNode node)
{
left = node;
}
public void setRightNode(TreeNode node)
{
right = node;
}
public void insert(int d)
{
if(d < item)
{
if(left == null)
{
left = new TreeNode(d);
}
else
{
left.insert(d);
}
}
else
{
if(right == null)
{
right = new TreeNode(d);
}
else
{
right.insert(d);
}
}
}
}
class BSTree
{
private TreeNode root;
private int size;
BSTree()
{
root = null;
}
public TreeNode getRoot() {
return root;
}
public int size()
{
return size;
}
public boolean isEmpty()
{
return root == null;
}
public void insertElement(int data)
{
if(isEmpty())
{
root = new TreeNode(data);
}
else
{
insertNode(data, root);
}
size++;
}
}
public class thema_2_1 {
public static void main(String[] args) {
BSTree tree = new BSTree();
Student s1 = new Student("ytytytyt",3);
Student s2 = new Student("ytytujyng",6);
Student s3 = new Student("gfdfgdf",7);
Student s4 = new Student("gfd",9);
Student s5 = new Student("gfgd",10);
Student s6 = new Student("fgddg",2);
Student s7 = new Student("gdgfdgdgdg",2);
Student s8 = new Student("asdasd",6);
Student s9 = new Student("dfdfd",4);
Student s10 = new Student("hghgh",5);
public int countSucceededStudents() {
//..............?????
}
}
}