I don't know how to write function search and delete by name in linked list. I have problems when I write the function to delete the employee by input of the employee's name. I still have the same problem with the search function. And as required i cannot use Array list. Can anybody help me please? Thank you so much.
Here is my source code :
import java.util.Scanner;
import java.io.Serializable;
/*  Class Node  */
class Employee implements Serializable{
    int ID;
    String name;
    String address;
    Employee(int emp_ID, String emp_name, String emp_address){
        ID = emp_ID;
        name = emp_name;
        address = emp_address;
    }
    public void print(){
        System.out.println(ID);
        System.out.println(name);
        System.out.println(address);
    }
    @Override
    public String toString() {
        return ID + "-" + name + "-" + address;
     }
}
class Node 
{
    protected Employee emp;
    protected Node link;
    public Object name;
    public Node in;
    /*  Constructor  */
    public Node()
    {
        link = null;
        emp = null;
    }    
    /*  Constructor  */
    public Node(Employee e,Node n)
    {
        emp = e;
        link = n;
    }    
    /*  Function to set link to next Node  */
    public void setLink(Node n)
    {
        link = n;
    }    
    /*  Function to set data to current Node  */
    public void setData(Employee e)
    {
        emp = e;
    }    
    /*  Function to get link to next node  */
    public Node getLink()
    {
        return link;
    }    
    /*  Function to get data from current Node  */
    public Employee getData()
    {
        return emp;
    }
}
/* Class linkedList */
class linkedList
{
    protected Node start ;
    protected Node end ;
    public int size ;
    /* Constructor */
    public linkedList()
    {
        start = null;
        end = null;
        size = 0;
    }
    /* Function to check if list is empty */
    /* Function to get size of the list */
    /* Function to insert element at the begining */
    public void insertAtStart(Employee e)
    {
        Node nptr = new Node(e,null);    
        nptr.setLink(start);
        if(start == null)
        {            
            start = nptr;
            nptr.setLink(start);
            end = start;            
        }
        else
        {
            end.setLink(nptr);
            start = nptr;        
        }
        size++ ;
    }
    public void searchByName(){
    }
    public void deleteByName(){
    }
}
/* Class CircularSinglyLinkedList */
public class CurrilarLinkedList
{    
    public static void main(String[] args)
    {    
        int ID = 0;
        String name = null;
        String address = null;
        Employee emp = null;
        Scanner scan = new Scanner(System.in);
        /* Creating object of linkedList */
        linkedList list = new linkedList(); 
        System.out.println("Circular Singly Linked List Test\n");          
        char ch;
        /*  Perform list operations  */
        do
        {
            System.out.println("\nCircular Singly Linked List Operations\n");
            System.out.println("1. insert at begining");
            System.out.println("2. delete by name");
            System.out.println("3. search by name");
            int choice = scan.nextInt(); 
            switch (choice)
            {
            case 1 : 
                System.out.print("Please input an Employee \n");
                Scanner myScanner = new Scanner(System.in);
                System.out.println("Please input an Employee ID");
                ID = myScanner.nextInt();
                myScanner.nextLine();
                System.out.println("Please input an Employee Name");
                name = myScanner.nextLine();
                System.out.println("Please input an Employee Address");
                address = myScanner.nextLine();
                emp = new Employee(ID,name,address);
                list.insertAtStart(emp);                     
                break;                          
            case 2 :                 
                break;                         
            case 3 : 
                break;                                          
            default : 
                System.out.println("Wrong Entry \n ");
                break;   
            }
            System.out.println("\nDo you want to continue (Type y or n) \n");
            ch = scan.next().charAt(0);            
        } while (ch == 'Y'|| ch == 'y');                    
    }
}
 
     
    