如何实现一个测试程序(Java)来测试CSC20011LinkedList方法?
我想知道如何实现一个测试程序来彻底测试这些方法,并通过在测试程序中使用两个CSC20011LinkedList对象来做到这一点,一个对象作为有序列表维护,另一个作为无序列表维护。我知道其中的一个方面是使用print方法来检查这些方法是否正常工作 类Csc2001LinkedList如何实现一个测试程序(Java)来测试CSC20011LinkedList方法?,java,testing,methods,linked-list,nodes,Java,Testing,Methods,Linked List,Nodes,我想知道如何实现一个测试程序来彻底测试这些方法,并通过在测试程序中使用两个CSC20011LinkedList对象来做到这一点,一个对象作为有序列表维护,另一个作为无序列表维护。我知道其中的一个方面是使用print方法来检查这些方法是否正常工作 类Csc2001LinkedList public class Csc2001LinkedList { protected Node head; public Csc2001LinkedList(Node head) {
public class Csc2001LinkedList {
protected Node head;
public Csc2001LinkedList(Node head)
{
this.head = null;
}
public Node getHead()
{
return head;
}
public void addFirst(char c)
{
head = new Node(c, head);
}
public void addAtEnd(char c)
{
Node n = new Node(c, head);
Node temp = head;
while(temp.next != null)
{
temp = temp.next;
}
temp.next = n;
}
public void addInOrder(char c)
{
Node n = new Node(c, head);
if(isEmpty())
{
addFirst(c);
}
else
{
Node pre = head;
Node succ = head.next;
if(n.ch < pre.ch)
{
n.next = head;
head = n;
}
else
{
while(succ != null && n.ch > succ.ch)
{
pre = succ;
succ = pre.next;
}
n.next = succ;
pre.next = n;
}
}
}
public boolean isEmpty()
{
return (head == null);
}
public char removeFirst()
{
Node temp = head.next;
if(temp != null)
{
head.next = temp.next;
return temp.ch;
}
else
{
System.out.println("List is empty");
return '?';
}
}
public void printList()
{
Node temp = head;
while(temp != null)
{
System.out.println(temp.ch + " ");
temp = temp.next;
}
}
}
我的建议是在你的课程中增加第三门课。该类将是一个驱动程序类,用于彻底测试列表和节点方法。您可以通过以下两种方式之一执行此操作:
- 在驱动程序类的main方法中创建一个非常基本的接口。此方法将允许您通过键盘输入向列表中添加字符,并将自动打印列表,以及完成添加后要执行的任何其他操作。这是一个很好的选择,因为您不必处理文件输入。但是,如果不在UI中投入大量工作,测试诸如delete之类的方法确实很困难
- 创建从文件中读入值的方法。创建用于测试方法的字符文件。在驱动程序类的main方法中,读入文件,将其添加到您创建的列表中(按顺序或在末尾),然后打印列表。然后,您可以在列表上测试其他方法,您可以提前控制列表的大小和特性
public class Node {
protected char ch;
protected Node next;
public Node(char ch, Node next)
{
this.ch = ch;
this.next = null;
}
}