数据结构与算法的java实现

数据结构与算法的java实现

ID:5264084

大小:857.77 KB

页数:33页

时间:2017-12-07

数据结构与算法的java实现_第1页
数据结构与算法的java实现_第2页
数据结构与算法的java实现_第3页
数据结构与算法的java实现_第4页
数据结构与算法的java实现_第5页
资源描述:

《数据结构与算法的java实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数据结构与算法的Java实现北京理工大学计算机学院金旭亮线性表(LinearTable)以下是一张学生健康情况登记表姓名学号性别年龄健康情况王小林790631男18健康陈红790632女20一般刘建平790633男21健康张立立790634男17神经衰弱……..……..…….…….…….各学生信息之间的关系是线性的,整个信息集合可视为一张“线性表”在Java中实现线性表如果数据项是固定的,则直接使用数组实现如果数据项数可变,则通常使用ArrayList类如果有频繁的数据插入与删除操作,则使用链表实现整个表对应于一个类,表中的每行数据对应一个这个类的实例。2013/10/224金旭亮J

2、ava系列课程(2013版)动态数组编程技能训练编写一个控制台程序,用ArrayList保存前页PPT所示之线性表。要求:1.定义一个Student类封装所有信息2.程序定义一组命令,支持对ArrayList中Student对象的“增”、“删”、“改”、“查”操作。2013/10/225金旭亮Java系列课程(2013版)自引用类“自己引用自己”的类classMyClass{自引用类MyClassobj;Self-ReferentialClass}在没有指针的面向对象编程语言中,自引用类可以起到类似于指针的作用2013/10/22金旭亮Java6系列课程(2013版)用自引用类实现链

3、表headerABCD^classNode{publicintdata;publicNodenextNode;}2013/10/227金旭亮Java系列课程(2013版)链表实例实例:List.javaEmptyListException.javaListTest.java金旭亮Java系列课程(2013版)82013/10/22链表编程基本技能训练-1编写一个程序,此程序读入一个英文句子,拆分出其中的单词,按原始顺序生成一个单向循环链表在此链表中查找某个单词,报告其位置2013/10/229金旭亮Java系列课程(2013版)链表编程基本技能训练-2修改前一页幻灯片中的代码,将其改

4、为双向链表利用双向链表,完成将一个句子倒序输出的功能。2013/10/2210金旭亮Java系列课程(2013版)栈(stack)栈(Stack)是限制在表的一端进行插入和删除运算的线性表,具有后进先出(LIFO:LastInFirstOut)特性。向其加入元素叫“入栈(push)”,取出元素叫“出栈(pop)”。poppush栈顶anan-1…...a2栈底a1用Java实现栈在Java中,可以使用线性表作为内部存储机制,进一步封装实现堆栈。实例:(1)StackInheritance.javaStackInheritanceTest.java(2)StackComposition.

5、javaStackCompositionTest.java2013/10/2213金旭亮Java系列课程(2013版)从“堆栈”实例中看到……实现复用的两种基本思路之一:组合。金旭亮Java系列课程(2013版)142013/10/22从“堆栈”实例中看到……实现复用的两种基本思路之二:继承金旭亮Java系列课程(2013版)152013/10/22栈编程基本技能训练1.编写一个程序,此程序读入一个英文句子,然后将栈其倒序输出。对比前面使用双向链表的类似编程练习,你认为这两种实现方式哪种好?2.使用堆栈检验括号的匹配假设在表达式中([]())或[([][])]等为正确的格式,[(])或(

6、[())或(()])均为不正确的格式。编程完成检验一个表达式中括号是否匹配的任务。2013/10/2216金旭亮Java系列课程(2013版)队列(Queue)队列(Queue)是一种运算受限的线性表。它只允许在表的一端进行插入,而在另一端进行删除。允许删除的一端称为队头(front),允许插入的一端称为队尾(rear)。出队入队队头队尾用Java实现队列实现队列的最简单方式是在内部包容一个链表。front实例:QueueInheritance.javaQueueInheritanceTest.javarear∧2013/10/2219金旭亮Java系列课程(2013版)项目实战当前银

7、行储蓄所普遍采用了取号排队的方式,请编写一个“仿真”程序,模拟这一“储户取号排队顺序办理银行业务”的现实生活场景。提示:这个仿真程序中包容一个等待队列和多个工作队列。注意储户是随机到来的,而每个工作人员办理不同储户的时间有长有短。真正做到与真实系统高度一致,需要先掌握Java多线程开发的知识。2013/10/2220金旭亮Java系列课程(2013版)树(Tree)树树是一种在软件开发中常用的非线性结构。树

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。