【发布时间】:2015-10-10 10:20:27
【问题描述】:
我正在用java编写一个非常简单的双链表代码,一切都很好。 但是当我想打印变量时,它会打印 null。 我尝试将对象转换为原始数据类型,但它不起作用
Node.java
public class Node {
Object data;
Node next,prev;
public Node()
{
next=null;
prev=null;
}
public Node(Object d)
{
data=d;
next=null;
prev=null;
}
public Node(Object d , Node n, Node p)
{
data=d;
next=n;
prev=p;
}
}
List.java
public class List {
Node head;
public List()
{
head=null;
}
public void insert(Node x)
{
x.next=head;
if(head!=null)
{
head.prev=x;
}
head=x;
x.prev=null;
}
public Node search(Object k)
{
Node x=head;
while (x!=null && !x.data.equals(k))
{
x=x.next;
}
return x;
}
public void delete(Node x)
{
if (x.prev!=null)
{
x.prev.next=x.next;
}
else
{
head=x.next;
}
if (x.next!=null)
{
x.next.prev=x.prev;
}
}
public void print()
{
for (Node i=head; i!=null; i=i.next)
{
System.out.println(i.data + " ");
}
}
}
MainClass.java
public class MainClass {
public static void main(String[] args)
{
List t=new List();
Node a=new Node((Integer)(10));
Node b=new Node((Integer)(50));
Node r=new Node("Hello World" + " ");
t.insert(a);
t.insert(b);
t.insert(r);
t.print();
t.delete(r);
t.print();
if(t.search(r)!=null)
{
System.out.println(" Node Found ");
}
else
{
System.out.println(" Node not Found ");
}
}
}
我得到了 '空'
而不是,
10 50 Hello world 10 50
请帮忙。 谢谢。
【问题讨论】: