标题:求助.class'expected是什么错误
取消只看楼主
sizki
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-9-14
 问题点数:0 回复次数:5 
求助.class'expected是什么错误

编一个单链表的删除,查找,添加到尾部的程序遇到报错

import java.io.*;

class intsllnode{
public int info;
public intsllnode next;
public intsllnode (int i) {
this (i,null);
}
public intsllnode (int i,intsllnode n) {
info=i;next=n;
}
}
public class intsllist{
protected intsllnode head,tail;
private int input;
private BufferedReader buffer = new BufferedReader(
new InputStreamReader(System.in));
public intsllist() {
head=tail=null;
}

public boolean isempty() {
return head==null;
}

public void printall(){
for (intsllnode tmp=head;
tmp!=null;
tmp=tmp.next )
System.out.print(tmp.info+"");
}

public void delete (int el){
el=getint("I want delete this num");
if(head!=null)
if (el==head.info)
head=head.next;
else{
intsllnode pred=head,tmp=head.next;
for(;tmp!=null&&el!=tmp.info;
pred=pred.next,tmp=tmp=tmp.next)
if (tmp!=null)
pred.next=tmp.next;
}
}
public int find(int el){
el=getint("find this num");
intsllnode tmp=head;
for (;tmp!=null&&el!=tmp.info;
tmp=tmp.next)
if (tmp==null)
return null;
else return tmp.info;
}
public void addtotail(int el){
el=getint("insert a num");
if (!isempty()){
tail.next=new intsllnode(el);
tail=tail.next;
}
else head=tail=new intsllnode(el);
}
private int getint(String msg) {
System.out.print(msg + " ");
System.out.flush();
try {
input = buffer.readLine();
} catch(IOException io) {
}
return input;
}

public void run() {
while (true) {
char option = getString("\nEnter one of the following options:\n" +
"1. addtotail\n" +
"2. find\n" +
"3. delete\n" +"4.statues\n"+
"Your option:").charAt(0);
switch (option) {
case '1': addtotail(int el); break; // .class'expected 下面两个都是同样的错误 我是初学者 高手帮忙!!!
case '2': System.out.print(find(int el)); break;
case '3': delete(int el); break;
case '4': printall(); break;
case '5': return;
default: System.out.println("Wrong option, try again.");
}
}
}

public static void main(String args[]) {
(new intsllist()).run();
}
}

搜索更多相关主题的帖子: expected class 
2007-01-04 11:56
sizki
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-9-14
得分:0 
太谢谢了,期末考试要用java 哎 有点无奈了都
晚上重写一遍,要是不行的话还得麻烦你们

char option = getString("\nEnter one of the following options:\n" +"1. addtotail\n" +"2. find\n" +"3. delete\n" +"4.statues\n"+"Your option:").charAt(0);
//上面那句你想做什么??

发现这句是完全错的。。。汗 本来的意思是打印出
Enter one of the following options
1. addtotail
2. find。。。。然后输入1,2,3选择相应的功能的,再看一便发现getString()这个方法我没写上去。。。

ps:发现这个论坛上版主很负责任,赞
2007-01-04 17:24
sizki
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-9-14
得分:0 

呵呵,搞出来了,谢谢三楼的提醒,我把int 都改成了 String 型就ok了!!谢谢了 贴出程序。。

不过发现一个比较弱的问题,说出来不要见笑。。。就是我先用for循环时没有打分号,编译却通过了

但是delete功能就不能实现了,总是随机的删除一个数,不知道是怎么回事,能再给个解释么 谢谢了

import java.io.*;

class intsllnode{
public String info;
public intsllnode next;
public intsllnode (String i) {
this (i,null);
}
public intsllnode (String i,intsllnode n) {
info=i;next=n;
}
}
public class intsllist{
protected intsllnode head,tail;
private String input;
private BufferedReader buffer = new BufferedReader(
new InputStreamReader(System.in));
public intsllist() {
head=tail=null;
}

public boolean isempty() {
return head==null;
}

public void printall(){
for (intsllnode tmp=head;
tmp!=null;
tmp=tmp.next )
System.out.print(tmp.info+" ");

}
public String find(){
String el=getstring("find this num");
intsllnode tmp=head;
for (;tmp!=null&&!el.equals(tmp.info);
tmp=tmp.next);
if (tmp==null)
return null;
else return tmp.info;
}

public void delete (){
String el=getstring("I want delete this num");
if(head!=null)
if (el.equals(head.info))
head=head.next;
else{
intsllnode pred=head,tmp=head.next;
for(;tmp!=null&&!el.equals(tmp.info);
pred=pred.next,tmp=tmp.next);
if (tmp!=null)
pred.next=tmp.next;
}
}

public void addtotail(){
String el=getstring("insert a num");
if (!isempty()){
tail.next=new intsllnode(el);
tail=tail.next;
}
else head=tail=new intsllnode(el);
}
private String getstring(String msg) {
System.out.print(msg + " ");
System.out.flush();
try {
input = buffer.readLine();
} catch(IOException io) {
}
return input;
}

public void run() {
while (true) {
char option = getstring("\nEnter one of the following options:\n" +
"1. addtotail\n" +
"2. find\n" +
"3. delete\n" +"4.statues\n"+
"Your option:").charAt(0);
switch (option) {
case '1': addtotail(); break;
case '2': System.out.print(find()); break;
case '3': delete(); break;
case '4': printall(); break;
case '5': return;
default: System.out.println("Wrong option, try again.");
}
}
}

public static void main(String args[]) {
(new intsllist()).run();
}
}

2007-01-04 19:30
sizki
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-9-14
得分:0 
??我找了本书,一模一样的搬下来的。。。。
2007-01-04 20:36
sizki
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-9-14
得分:0 
for(;tmp!=null&&!el.equals(tmp.info);
pred=pred.next,tmp=tmp.next);//下面还有这一句
是不是加分号就是一直循环找到等于el的tmp.info
然后 if (tmp!=null)
pred.next=tmp.next; 把tmp这个节点删去

for不加分号 意思就是if (tmp!=null)
pred.next=tmp.next; 每一次都得执行 然后就会有错误 实现不了功能

不好意思。。。菜鸟添麻烦了
ps:(刚才又对了一遍书,是这样写的功能也能实现)
2007-01-05 10:31
sizki
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-9-14
得分:0 
谢谢。。。这个循环看来是有意这样写的。。。
晚上要写一个用堆栈实现括号匹配,,, 写完后还发到这楼里吧
有高手指点 帮助比较大。。。
2007-01-05 12:17



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-114113-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.199113 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved