- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《基于JAVA数据结构》实验二.doc
《基于JAVA数据结构》实验二
目的:
牢固掌握线性表的基本概念
熟练掌握线性表的链式存储结构
熟练掌握基于线性表的链式存储结构的有关算法(静态和动态)
实验题目:
1、(必做)写出链表的有关操作,包括(建立链表结构、建立单向链表、并在链表上实现元素的插入、元素的删除、元素的查找)。
2、(选做)用链表实现两个多项式的相加。
要求:
写出实验报告:
包括:
所用到的线性表的ADT(抽象数据类型)
构造的线性表的类
测试用数据
分析总结实验中出现的问题
附原程序清单
用文件的方式进行数据的输入/输出
附件:(参考)
线性表类
public abstact class LinkedList
{
protected class ListNode
{
protected int data;
protected ListNode next;
}
protected ListNode list;
protected int numItems; //线性表元素的个数
protected ListNode currentPos;
public LinkedList( )
{
numItems=0;
list=null;
currentPos=null;
}
public abstract void create(ListNode header,int data );//创建新链表
public a boolean isthere( item);//查找元素
public abstract void insert(ListNode item);//插入元素
public abstract void delete(int item);//删除元素
public astract void printlist();//打印线性表
……
}
创建链表(采用头插和尾插法)及插入元素举例:
MyList.java
package ch02.mytest;
public class MyList
{
protected class ListNode
{
protected int info;
protected ListNode next;
}
protected ListNode list;
protected int numItems;
protected ListNode currentPos;
public MyList()
{
numItems=0;
list=null;
currentPos=null;
}
public String visitAllNode()
{
ListNode n1;
String s=;
n1=list;
while(n1!=null)
{
s=s+n1.info+;;
n1=n1.next;}
return s;
}
public void inserthead(int data)//头插法建立链表
{
ListNode newNode=new ListNode();
newNode.info=data;
newNode.next=list;
list=newNode;
numItems++;
}
public void insertend(int data)//尾插法建立链表
{
ListNode newNode=new ListNode();
newNode.info=data;
newNode.next=null;
if(list==null)
{list=newNode;
currentPos=list;}
else
{
currentPos.next=newNode;
currentPos=newNode;}
numItems++;
}
public boolean isThere(int data1)
{
boolean moreTosearch;
ListNode location=list;
boolean found=false;
while((location!=null)!found)
if(location.info==data1)
found=true;
else
location=location.next;
return found;
}
}
useLinkList.java
package ch02.my
文档评论(0)