Java中的数据结构和算法

Java中的数据结构和算法,java,algorithm,data-structures,Java,Algorithm,Data Structures,好的,我正在做这本书上的编程项目。它是这样说的: 循环列表是一种链接列表,其中最后一个链接指向第一个链接。 设计循环列表的方法有很多。有时会有一个指向 列表的“开始”。然而,这使得列表不太像一个真正的圆圈 更像是一个普通的列表,它的结尾与开头相连。制造 为没有结束和开始的单链接循环列表初始化。这个 对列表的唯一访问权限是单个引用current,它可以指向任何链接 在名单上。此引用可以根据需要在列表中移动。(见 理想情况下,此类循环列表的编程项目5.5 列表应该处理插入、搜索和删除。你可以 如果这

好的,我正在做这本书上的编程项目。它是这样说的:

循环列表是一种链接列表,其中最后一个链接指向第一个链接。 设计循环列表的方法有很多。有时会有一个指向 列表的“开始”。然而,这使得列表不太像一个真正的圆圈 更像是一个普通的列表,它的结尾与开头相连。制造 为没有结束和开始的单链接循环列表初始化。这个 对列表的唯一访问权限是单个引用current,它可以指向任何链接 在名单上。此引用可以根据需要在列表中移动。(见 理想情况下,此类循环列表的编程项目5.5 列表应该处理插入、搜索和删除。你可以 如果这些操作发生在服务器下游的一个链路上,您会觉得很方便 当前指向的链接。(因为上游链接是单独链接的,所以 如果不绕圈子走一圈,你就没法做到。)你也应该 能够显示列表(尽管您需要在任意时间打破圆圈) 指向在屏幕上打印)。移动当前值的step()方法 接下来的链接可能也会派上用场

这就是我到目前为止所拥有的,我所拥有的主要方法无法改变

类循环
{
int数据;
下一个循环;
上一份通告;
公共通告(int d)
{
数据=d;
next=null;
prev=null;
}
公共int getData()
{
返回数据;
}
}
类循环
{
循环电流;
//建造师
公众通告
{
currPt=null;
}
/******************************************
*函数的作用是*
*插入带有数据项的新链接*
*添加到现有列表*
*****************************************/
公共void insertLink(int-dd)
{
循环链接=新循环(dd);
如果(currPt==null)
{
theLink.next=链接;
theLink.prev=链接;
}
else if(currPt.next==null&&currPt.prev==null&&currPt!=null)
{
theLink.next=currPt;
theLink.prev=currPt;
currPt.prev=链接;
currPt.next=链接;
}
否则如果(currPt!=null)
{
theLink.next=currPt.next;
theLink.prev=currPt;
currPt.next.prev=链接;
currPt.next=链接;
}
currPt=链接;
}
/**************************************************
*search()函数用于搜索特定的*
*通过遍历链接列表来设置关键帧*
*************************************************/
公共整数查找(整数键)
{
循环温度=电流;
if(tempCurr.data==键)
{
返回键;
}
其他的
{
tempCurr=tempCurr.next;
}
while(临时电流数据!=电流数据)
{
if(临时电流数据==键)
{
返回键;
}
其他的
{
tempCurr=tempCurr.next;
}
}
System.out.println(“找不到密钥!”);
返回-99;
}
/******************************************
*函数的作用是:删除链接的*
*在当前指针处列出并返回*
*数据项的值*
*****************************************/
公共int delete()
{
循环温度=电流;
currPt.next.prev=currPt.prev;
currPt.prev.next=currPt.next;
currPt=临时货币。上一个;
返回tempCurr.data;
}
/********************************************
*函数的作用是:打印出*
*通过遍历链表来创建链表*
*在任何一个方向*
*******************************************/
公共void显示列表(布尔方向)
{
循环模板=电流;
做
{
System.out.print(tempLink.getData()+);
tempLink=方向?tempLink.next:tempLink.prev;
}
while(tempLink.data!=当前数据);
System.out.println(“”);
}
}
类CircApp
{
公共静态void main(字符串[]args)
{
链接f、d;
circularLL theList=新的circularLL();//制作列表
theList.insertLink(10);//插入项
插入链接列表(20);
插入链接列表(30);
插入链接列表(40);
插入链接列表(50);
列表插入链接(60);
插入链接列表(70);
theList.displayList();//显示列表
f=theList.find(30);//查找项
如果(f!=null)
System.out.println(“找到带键的链接”+f.iData);
其他的
System.out.println(“找不到与键30的链接”);
theList.displayList();//显示列表
System.out.println(“使用键80插入链接”);
插入链接列表(80);
theList.displayList();//显示列表
d=列表。删除(60);//删除项
如果(d!=null)
System.out.println(“带键的删除链接”+d.iData);
其他的
System.out.println(“无法删除带有键60的链接”);
theList.displayList();//显示列表
f=theList.find(99);//查找项
如果(f!=null)
System.out.println(“找到带键的链接”+f.iData);
其他的
System.out.println(“找不到与键99的链接”);
theList.displayList();//显示列表
d=theList.delete(13);//删除项
如果(d!=null)
System.out.println(“带键的删除链接”+d.iData);
其他的
CircApp.java:134: error: cannot find symbol
    Link f, d;