Связанный - список перемещает последний объект в списке на шаг - PullRequest
0 голосов
/ 08 июня 2019

я получил для домашней работы вопрос о связанном списке.у меня есть 2 класса связанного списка:

public class listOne
{
    private int _num;
    private listOne _next,_prev;

    public listOne (int n)
    {
        _num=n;
        _next=null;
        _prev=null;
    }

    public listOne (int num,listOne n,listOne p)
    {
        _num=num;
        _next=n;
        _prev=p;
    }
}
    public class listTwo 
    {
     private listOne _head,_tail;
     public listTwo ()
     {
         _head=null;
         _tail=null;
    }
    public listTwo (listOne h,listOne t)
    {
        _head=h;
        _tail=t;
    }

}

Теперь мне нужно написать логический метод, который возвращает истину, если есть подкласс, чье среднее значение равноданное среднее значение пользователем.и false, если нет, метод должен быть с эффективностью o (n), и если это возможно, он может быть лучше с o (1), метод будет записан в классе listTwo.

Сначала я подумал,рассчитать среднее значение по всему списку и подсчитать количество чисел в списке, а также проверить, равно ли среднее значение данному среднему.если среднее значение в списке больше заданного среднего, я вычту из суммы последнее число в списке и переместлю последний объект списка на один шаг назад и вычту 1 из подсчета.если среднее значение в списке меньше заданного среднего, я вычту из суммы первый объект, переместу первый объект на один шаг вперед и вычту 1 из переменной count.

Я думаю, что этот метод должен работать, но когда я пытаюсь написать его, я как бы застрял.Я пытаюсь написать метод, который перемещает последний объект на один шаг назад. Скажите, пожалуйста, правильно ли написан этот метод?:

private listOne newEnd(listOne list)
{
listOne p=_head,prev=null;
while(p!=null&&p.getNext()!=null)
{
prev=p;
p=p.getNext();
}
if(p!=null&&p.getNext()==null)
{
prev.setNext(p);
}
return p;
}

этот метод должен вернуть последний объект списка на один шаг назад.это правильно?спасибо}

...