云题海 - 专业文章范例文档资料分享平台

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

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

  • 62 次阅读
  • 3 次下载
  • 2025/6/17 2:55:00

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

}

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

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

山东建筑大学计算机学院课程设计说明书 } 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!=he

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com