以下是两类:链接列表:显示最后一个节点正确
import java.io.*;
class Node
{
int data;
Node link;
BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
void accept()throws IOException
{
System.out.println("Enter a number: ");
data=Integer.parseInt(buf.readLine());
}
}
import java.io.*;
class LinkedList
{
BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
Node start=new Node();
void create()throws IOException
{
Node n=new Node();
n.accept();
start.link=n;
}
void addbeg()throws IOException
{
Node n=new Node();
n.accept();
n.link=start.link;
start.link=n;
}
void addend()throws IOException
{
Node n=new Node();
n.accept();
Node n1=new Node();
n1=start.link;
while(n1.link!=null)
{
n1=n1.link;
}
n1.link=n;
n.link=null;
}
void addafter()throws IOException
{
boolean flag=false;
System.out.println("Enter data after which node is to be added: ");
int d=Integer.parseInt(buf.readLine());
Node n=new Node();
n.accept();
Node n1=start.link;
while(n1.link!=null)
{
if(n1.data==d)
{
flag=true;
break;
}
n1=n1.link;
}
if(flag==true)
{
n.link=n1.link;
n1.link=n;
}
else
System.out.println("Data is not present in the list");
}
void addbefore()throws IOException
{
boolean flag=false;
Node n=new Node();
n.accept();
System.out.println("Enter the data before which node is to be added: ");
int d=Integer.parseInt(buf.readLine());
Node n1=start.link;
Node prev=start;
while(n1.link!=null)
{
if(n1.data==d)
{
n.link=n1;
prev.link=n;
flag=true;
break;
}
else
{
prev=n1;
n1=n1.link;
}
}
if(flag==false)
{
System.out.println("Data not found");
}
}
void delbeg()
{
Node n=start.link;
start.link=n.link;
n.link=null;
}
void delend()
{
Node n=start.link;
Node prev=start;
while(n.link!=null)
{
prev=n;
n=n.link;
}
prev.link=null;
}
void delspecific()throws IOException
{
boolean flag=false;
System.out.println("Enter data to be deleted: ");
int d=Integer.parseInt(buf.readLine());
Node n=start.link;
Node prev=start;
while(n.link!=null)
{
if(n.data==d)
{
prev.link=n.link;
n.link=null;
flag=true;
}
else
{
prev=n;
n=n.link;
}
}
if(flag==false)
{
System.out.println("Data is not present in the list");
}
}
void display()
{
System.out.println("Linked List: ");
Node n=start.link;
do
{
System.out.print(n.data+" -> ");
n=n.link;
}
while(n.link!=null);
System.out.println();
}
void main()throws IOException
{
boolean flag=false;
while(!flag)
{
System.out.println("Enter choice: ");
System.out.println("1. Create ");
System.out.println("2. Add at the Beginning ");
System.out.println("3. Add at the End ");
System.out.println("4. Add after a particular node ");
System.out.println("5. Add before a particular node ");
System.out.println("6. Delete at the Beginning ");
System.out.println("7. Delete at the End ");
System.out.println("8. Delete a specific node ");
System.out.println("9. View ");
System.out.println("10. End ");
int ch=Integer.parseInt(buf.readLine());
switch(ch)
{
case 1:create();
break;
case 2:addbeg();
break;
case 3:addend();
break;
case 4:addafter();
break;
case 5:addbefore();
break;
case 6:delbeg();
break;
case 7:delend();
break;
case 8:delspecific();
break;
case 9:display();
break;
case 10:flag=true;
System.exit(0);
break;
}
}
}
}
当我执行任何功能,查看链接列表,最后一个节点总是缺少。过去四个小时,我一直在研究这个计划,并且在最后一个节点没有显示时感到惊讶。请帮助
请善待和格式化你的代码。这是很难阅读,没有缩进。 – Omar
当发生类似情况时,通过打印某些信息进行调试。你也可以遍历代码,但这可能没有必要。我没有看过你的代码,但它可能需要几分钟才能找到错误。 – keyser
我不知道发生了什么问题...应该是正确的...如果有人可以在他们的系统上复制并运行它,这将会有所帮助。 –