线性表的操纵[Java编程]
本文“线性表的操纵[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
线性表的逻辑定义
线性表(Linear List)是由n(n≥0)个数据元素(结点)a1,a2,…,an构成的有限序列.
① 数据元素的个数n定义为表的长度(n=0时称为空表).
② 将非空的线性表(n>0)记作:(a1,a2,…,an)
③ 数据元素ai(1≤i≤n)只是个抽象标记,其具体含义在差别情形下可以差别.
线性表的逻辑构造特点
关于非空的线性表:
① 有且唯一一个开始结点a1,没有直接前趋,有且唯一一个直接后继a2;
② 有且唯一一个终结结点an,没有直接后继,有且唯一一个直接前趋an-1;
③ 别的的内部结点ai(2≤i≤n-1)都有且唯一一个直接前趋ai-1和一个ai+1.
ADT
一个ADT是一个仅由保存的数据范例和大概在这个数据范例上举行的操作定义的.开辟者们只能通过ADT的操作办法来拜候ADT的属性,并且他们不会知道这个数据范例内部各种操作是若何实现的.
在Java中,我们常常利用一个接口来给出一个操作调集而不需求泄露这些操作实现的细节.记着一个接口定义了一个办法集而Java类必须实现这个调集以便满意它的强迫性条件大概实现这个接口的一个实例.
线性表,仓库和行列
当我们评论ADT的时刻,常常会说到线性表,仓库和行列.我们不会谈论这些数据构造的细节,但我们会谈论为什么它们被称为ADT.
一个线性表是有限个元素的调集,其元素以线性的方法举行布列并供应对它的元素的直接拜候.一个仓库是一个后进先出(LIFO)的有序线性表,元素从仓库头加入,并从仓库头取出.一个行列是一个先进先出的有序线性表,元素从行列尾加入,并从行列头取出.
线性表,仓库和行列的内部构造可以用很多方法实现.比方,我们可以利用一个有序数组大概一个链表来实现每个构造.关键的一点是不管你若何实现其内部构造,它对外的接口老是不变的.这使得你可以改正大概进级底层的实现历程而不需求改变大众接口部份.
Java 调集架构
Java 2软件开辟包(SDK)供应了一些新类来支持大大都常用的ADT.这些类被称为Java调集类(近似于MFC中的调集类),它们协同工作从而形成Java 调集架构.这个调集架构供应了一套将数据表示成所谓的调集抽象数据的接口和类.
java.util.Collection接口被用来表示肆意的成组的对象,也就是元素.这个接口供应基本的诸如增添,删除,和查询这样的操作.Collection接口还供应了一个iterator办法.iterator办法返回java.util.Iterator接口的一个实例.而Iterator接口又供应了hasNext, next, 和 remove办法.利用Iterator接口供应的办法,你可以重新到尾循环遍历一个Collection对象中的实例并可以安全的删除iterator(游标)所表示的元素.
java.util.AbstractCollection 是全部调集架构类的底子.AbstractCollection 类供应了对 java.util.Collection 接口中除iterator和size办法以外的全部办法的实现.这两个例外的办法由全部担当java.util.AbstractCollection的子类实现.
实现一个接口的类必须供应对全部接口办法的实现.因为调集架构中的一些接口办法是可选的,所以必须有一种办法来告诉调用者某种办法没有实现.当一个可选的办法被实现而这个办法又并没有被实现的时刻,就会抛出一个UnsupportedOperationException 非常.UnsupportedOperationException 类担当了RuntimeException 类.这使得调用者可以调用全部的调集操作而不需求把每次调用都放在一个try-catch对里.
以上是“线性表的操纵[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
- ·上一篇文章:一个用JAVA开辟的会话密钥程序
- ·下一篇文章:<b>Java虚拟机</b>
- ·中查找“线性表的操纵”更多相关内容
- ·中查找“线性表的操纵”更多相关内容