链表的,可以插入但是查找不到,哪里出问题了
class Link {
public String reName;//收件人姓名
public String seName;//发件人姓名
public String emType;//邮件类型:普通,特快,汇款等等
public String dDay;
//收件日期,四位数年份+两位数月份+两位数日期,如19900203
public String sign;//邮件是否被人签收
public Link next;
public Link (String rename,String sename,String emtype,String day,String sign0){
reName=rename;
seName=sename;
emType=emtype;
dDay=day;
sign=sign0;
}
public void displayLink(){
System.out.println("收件人是:"+reName+" 发件人是:"+seName+" 邮件类型是:"+emType+" 于"+dDay+"收件 已签收?" +sign);
}
}
public class LinkList {
private Link first;
public LinkList(){
first=null;
}
//添加邮件信息
public void insertFirst(String rename,String sename,String emtype,String day,String sign0)
{
Link newLink=new Link(rename,sename,emtype,day,sign0);
newLink.next=first;
first=newLink;
}
public Link find(String name)//根据收件人姓名进行查找
{
Link current =first;
while(current.reName!=name)
{
if (current.next==null)
return null;
else
current=current.next;
}
return current;}
public Link delete(String name)
//根据收件人姓名,对整份文件进行销毁删除
{
Link current=first;
Link previous=first;
while(current.reName!=name)
{
if (current.next==null)
return null;
else{
previous=current;
current=current.next;}
}
if(current==first)
first=first.next;
else
previous.next=current.next;
return current;
}
public void displayList(){
System.out.println("校园收发室目前添加的的一些邮件信息如下");
System.out.println();
Link current=first;
while(current!=null){
current.displayLink();
current=current.next;
}
System.out.println("");
}
}
import java.io.*;
class LinkListApp
{
static String rename;
static String sename;
static String emtype;
static String day;
static String sign0;
public static void main (String []args){
System.out.print("请输入收件人:");
try{
rename= getString();
}catch(Exception e){
System.out.println("请输入收件人!");
}
System.out.print("请输入发件人:");
try{
sename= getString();
}catch(Exception e){
System.out.println("请输入发件人!");
}
System.out.print("请输入邮件类型:");
try{
emtype= getString();
}catch(Exception e){
System.out.println("请输入邮件类型!");
}
System.out.print("请输入收件日期:");
try{
day= getString();
}catch(Exception e){
System.out.println("请输入收件日期!");
}
System.out.print("是否签收? :");
try{
sign0= getString();
}catch(Exception e){
System.out.println("请输入是否已经签收!");
}
System.out.println("邮件信息添加成功!");
LinkList theList=new LinkList();
theList.insertFirst(rename,sename,emtype,day,sign0);
theList.displayList();
String key=null;
System.out.print("请输入要查询的收件人:");
try{
key= getString();
}catch(Exception e){
System.out.println("请输入要查询的收件人!");
}
Link f=theList.find(key);
if(f!=null)
System.out.println("该邮件的信息是:"+f.reName);
else
System.out.println("该邮件无法找到");
System.out.print("请输入要删除的收件人:");
try{
rename= getString();
}catch(Exception e){
System.out.println("请输入要删除的收件人!");
}
Link d=theList.delete(rename);
if(d!=null)
System.out.println("已经被删除");
else
System.out.println("该邮件无法被删除");
theList.displayList();
} public static String getString() throws IOException // 接受键盘输入一个字符串
{
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String s = br.readLine();
return s;
}
//-------------------------------------------------------------
}