@@ -0,0 +1,2340 @@
+package main.java.exercise;%0A%0Aimport main.java.framework.StudentInformation;%0Aimport main.java.framework.StudentSolution;%0A%0Aimport java.util.LinkedList;%0A%0Apublic class StudentSolutionImplementation implements StudentSolution %7B%0A    @Override%0A    public StudentInformation provideStudentInformation() %7B%0A        return new StudentInformation(%0A                %22Joaquin%22, // Vorname%0A                %22Telleria%22, // Nachname%0A                %2201408189%22 // Matrikelnummer%0A        );%0A    %7D%0A%0A    // Implementieren Sie hier Ihre L%C3%B6sung f%C3%BCr die Indexsuche%0A    public int findIndex(int%5B%5D numbers, int element) %7B%0A%0A        for(int i = 0; i %3C numbers.length; i++)%7B%0A            if (numbers%5Bi%5D == element)%7B%0A                return i;%0A            %7D%0A        %7D%0A        return -1;%0A    %7D%0A%0A    // Implementieren Sie hier den Gale-Shapley-Algorithmus%0A    public void performGaleShapley(StableMatchingInstance instance, StableMatchingSolution solution) %7B%0A%0A%0A        int numberOfChildren = instance.getN();%0A        System.out.println(%22we start with %22 + numberOfChildren + %22 children%22);%0A%0A%0A        int%5B%5D next = new int%5BnumberOfChildren%5D; // initialize the array that encodes for each child the next family to be checked for, for example if next%5B1%5D = 2, that means for child 1 next family to check is family 2%0A        for(int i = 0; i %3C numberOfChildren; i++)%7B%0A            next%5Bi%5D = 0;%0A        %7D%0A%0A       while(solution.hasUnassignedChildren())%7B // while (a child is free and can choose a family)%0A%0A           int child = solution.getNextUnassignedChild(); // choose a child s%0A           int family = instance.getFamilyOfChildAtRank(child,next%5Bchild%5D);   // f is the first family in the preference list of s that has not chosen s yet%0A%0A           if (solution.isFamilyFree(family))%7B // if if s free%0A               solution.assign(child,family); // assign family to child in the solution%0A           %7D%0A           // elseif f prefers s to their current partner s'%0A                     // connect s and f%0A                    // disconnect s' and f%0A           // else gets rejected (remains free)%0A%0A           next%5Bchild%5D = next%5Bchild%5D + 1;%0A%0A%0A       %7D%0A%0A%0A%0A    %7D%0A%0A    // Implementieren Sie hier Ihre Methode zur %C3%9Cberpr%C3%BCfung, ob ein Matching stabil ist.%0A    public boolean isStableMatching(StableMatchingInstance instance, StableMatchingSolution solution) %7B%0A%0A%0A        return true;%0A    %7D%0A%7D%0A

Create StudentSolutionImplementation.java