第一范文网 - 专业文章范例文档资料分享平台

学位论文-—双向循环链表的创建及相关操作的实现课程设计说明书

来源:用户分享 时间:2025/5/23 17:19:26 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

山东建筑大学计算机学院课程设计说明书

}

private AnyType remove( Node p ){ p.prev.next=p.next; p.next.prev=p.prev;

theSize--;

return p.data; }//删除操作

private void inverse(){

Node p,q,l;

p=headNode.next; q=p.next;

while(p!=headNode){ }

l=q.next;//空置的中转结点赋值

q.next=p;//将p、q链表的前后域置换。q由p的后域变成前域 p.prev=q;

p=q;//置换后,将各个结点置换输出。 q=l;

q.next=p;

p.prev=q;//当p为头结点时,直接将前后域置换。 }//逆置

private Node getNode(int idex){ Node p;

if(idex<0||idex>size())

8

山东建筑大学计算机学院课程设计说明书

throw new IndexOutOfBoundsException(\

idex:\+idex+\+size()); if(idex

p=headNode;

for(int i=0;i<=idex;i++) p=p.next; }

else{

p=headNode;

for(int i=size();i>idex;i--){

p=p.prev; } }

return p; }//查找结点位置

public void print(){

for(int i=0;i

System.out.print(getNode(i).data+\); System.out.println(); }//结果输出

public void choose(){

System.out.println(\插入第i个节点\); System.out.println(\删除第i个节点\); System.out.println(\插入第一个节点\); System.out.println(\插入最后一个节点\); System.out.println(\逆置\);

}//选择操作项

public static void main(String[] args){

DlList dl=new DlList(); Scanner sc=new Scanner(System.in);

int xuanze;

9

山东建筑大学计算机学院课程设计说明书

System.out.println(\请输入链表的元素的个数(大于0个):\); int n=sc.nextInt();

System.out.println(\请输入链表的\+n+\个元素:\); for(int i=1;i<=n;i++){ int l=sc.nextInt();

dl.add(l);//链表元素输入 }

System.out.println(\您输入的链表为:\); dl.print();//调用print方法,提示操作。 System.out.println(\请选择操作项:\); dl.choose();//调用choose,选择操作。

while(true){

xuanze=sc.nextInt(); switch(xuanze){ case 1:

System.out.println(\请输入要插入的位置下标和数据:\); int idex=sc.nextInt(); int data=sc.nextInt();

dl.add(idex, data); dl.print(); break; case 2:

System.out.println(\请输入要删除节点的下标:\); int idex1=sc.nextInt(); dl.remove(idex1); dl.print(); break; case 3:

System.out.println(\请输入插入第一个节点的元素:\); int data1=sc.nextInt(); dl.add(0,data1); dl.print(); break;

case 4:

System.out.println(\请输入插入最后位置的元素:\); int data2=sc.nextInt();

10

山东建筑大学计算机学院课程设计说明书

dl.add(dl.size(), data2);

dl.print(); break; case 5:

dl.inverse(); dl.print(); break;

default:

System.out.println(\你的输入有误,请重新输入!\); break;

} } } }

五、测试数据

1、对每个函数的测试数据

链表中的元素插入为1、2、3、4、5 插入第二个结点的元素为6 删除第二个节点的位置的元素6 插入第一个节点的元素为7 插入最后一个节点的元素为6 逆置链表

2、对程序整体的测试数据

输入元素为1、2、3、4、5的双向循环链表

六、测试情况

请输入链表的元素的个数(大于0个): 5

请输入链表的5个元素: 1 2

11

学位论文-—双向循环链表的创建及相关操作的实现课程设计说明书.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c0wm953gngx1is530855j3blzb1bw3200hnk_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top