0

我一直在研究双端队列(双端队列)类。在所有方法上我还有很多工作要做,但我希望能够随时测试我编写的代码。我在线程“main”java.lang.NoSuchMethodError: main. 我将不胜感激解决此问题的任何帮助。

在此先感谢,这是我的代码:

class DNode<E>
{
    private E data;
    private DNode<E> lLink, rLink;

    public DNode(E iData, DNode<E> lefLink, DNode<E> riteLink)
    {
        data = iData;
        rLink = riteLink;
        lLink = lefLink;
    }

    public E getData()
    {return data;}

    public void setData(E aData)
    {data = aData;}

    public DNode<E> getRightLink()
    {return rLink;}

    public void setRightLink(DNode<E> righty)
    {rLink = righty;}

    public DNode<E> getLeftLink()
    {return lLink;}

    public void setLeftLink(DNode<E> lefty)
    {lLink = lefty;}

    public void addNodeAfter(E item)
    {rLink = new DNode<E>(item, this, rLink);}

    public void removeNodeAfter()
    {rLink = rLink.getRightLink();}
}

class Deque<E>
{
    private int manyNodes = 0;
    private DNode<E> front, rear;

    public Deque()
    {
        manyNodes = 0;
        front = null;
        rear = null;
    }


    public boolean isEmpty()
    {return (manyNodes == 0);}

    public void addAtEnd(E item)
    {
        if(isEmpty())
        {
            front.addNodeAfter(item);
            rear = front;
        }
        else
        {
            rear.addNodeAfter(item);
            rear = rear.getRightLink();
        }
        manyNodes++;
    }

    public void addtAtFront(E item)
    {
        if(isEmpty())
        {
            front.addNodeAfter(item);
            rear = front;
        }
        else
        {
            front.addNodeAfter(item);
        }
    }

    public void removeFirst() throws NoSuchFieldException
    {
        if(manyNodes == 0)
            throw new NoSuchFieldException();
        front.removeNodeAfter();
    }

    public void removeLast() throws NoSuchFieldException
    {
        if(manyNodes == 0)
            throw new NoSuchFieldException("Ya dun goofed");
        rear.removeNodeAfter();
    }

    public void print()
    {
        DNode<E> trace;
        for(trace = front; trace.getRightLink() != null; trace = trace.getRightLink())
            System.out.println(trace.getData());
    }
}


class DequeRun
{
    public static void main(String[] args)
    {
        Deque<String> test1 = new Deque<String>();
        test1.addAtEnd("Ryan");
        test1.addAtEnd("Mike");
        test1.print();
    }
}
4

1 回答 1

3

将您的 DequeRun 设为公开,否则 jvm 将无法在其中找到主要方法

于 2013-10-19T05:15:43.887 回答