linux操作系统论文可复制,linux操作系统课程论文

62e50291a81fc54b507f33cb80033297.gif linux操作系统课程论文

(7页)

13410d9e34ef531e525e9b7e6570b787.gif

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

7.9 积分

《《Linux 操作系统操作系统》》课程论文课程论文 论文题目Linux 下用 java 实现双链表 学生姓名 (学号) 柳志东 200811621212 所在学院信息学院 所在班级计科 1082 指导教师彭伟民 提交时间2011 年 11 月 10 日 成绩 目 录 目目 录录 目录目录 1程序名称.3 2程序的算法思想.3 3源代码分析.3 3.1链表的接口3 3.2链表的接口的实现4 3.3节点类6 4运行结果与总结.6 参考文献7 《Linux 操作系统》课程论文 1程序名称 在 linux 下用 java 实现双链表的算法,双(向)链表中有两条方向不同的链,即 每个结点中除 next 域存放后继节点地址外,还增加一个指向其直接前趋的指针域 prior,每个节点都有一个存储数据的域 data 。 2程序的算法思想 实现一个双链表,首先要确定的是链表的头节点 head,尾节点 tail,其实他们都 是一个普通的结点,只不过 head 的 prior 为 null,即没有指向任何的节点,tail 的 next 为 null,后面没有指向任何节点。初始化时为 head-next=tail。 3源代码分析 程序目录结构,使用的是 java 1.6 版本 3.1链表的接口 在 DoubleLink 接口中定义了 7 个基本方法,分别是对链表的增加,删除,isEmpty 判断,查找和打 印当前的链表信息。 《Linux 操作系统》课程论文 package com.doubleLink.alg.dao; import com.doubleLink.alg.node.Node; public interface DoubleLink { public int addFirst(Node node); public int addLast(Node node); public boolean isEmpty(); public int delete(Node node); public void print(); public void insertBefore(Node target,Node node); public int search(Node node); } 3.2链表的接口的实现 在接口实现中,定义了头节点 head,尾节点 tail 和当前链表的大小 size, 1.初始化链表: public DoubleLinkImp(){ head=new Node(0); tail=new Node(0); head.setNext(tail); tail.setPre(head); size=0; } 《Linux 操作系统》课程论文 2.把新节点插入到 head 之后的位置 public int addFirst(Node node) { try { node.setNext(head.getNext()); node.setPre(head); head.getNext().setPre(node); head.setNext(node); size++; return 1; } catch (Exception e) { return 0; } } 3.打印链表节点 public void print() { Node temp=head.getNext(); while(temp!=null temp=temp.getNext(); } } 4.查找节点 public int search(Node node) { if(isEmpty()) return 0; Node temp=head.getNext(); while(temp!=null } temp=temp.getNext(); } return 0; } 《Linux 操作系统》课程论文 3.3节点类 在节点类中定义了 next pre data 基本的属性和它们的 get,set 方法,用以操作 数据变量。 4运行结果与总结 新建一个test类,用以测试链表的正确性,设计如下执行程序 /** * @param args * @author lzd * */ public static void main(String[] args) { DoubleLinkImp db=new DoubleLinkImp();//初始化链表 Node first=new Node(1);//初始化节点 Node last=new Node(2); Node third=new Node(3); Node forth=new Node(4); Node insert=new Node(5); db.addFirst(first);//添加节点 db.addLast(last); db.addLast(third); db.addLast(forth); db.print();//打印当前链表 System.out.println(““); db.delete(first);//删除第一个节点 db.print();//打印删除后的链表 System.out.println(““); db.insertBefore(third, insert);//插入第五个节点 db.print(); } 《Linux 操作系统》课程论文 输出结果为: 1--2--3--4-- 2--3--4-- 2--5--3--4-- 总结:在 java 中其实是没有指针的概念的,但是对于对象的引用其实就是一种指 针的引用,所以我就用一个 Node 类作为 head,tail 和其他节点的 next 和 pre 的指向。 通过此次课程设计,让我更加深刻的认识到 java 的编程思想,和与 C++的真正区 别,java 内部也有一个链表类 LinkedList,通过自己实现一个链表,可以更加理解 java 中的链表的实现,方便以后的使用与扩展。 参考文献 [1] 《java 数据结构与算法》 [2] 《Linux 操作系统》 关 键 词: linux 操作系统 课程 论文

524d6daf746efaa52c3c71bbfe7ba172.gif  天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值