- 博客(21)
- 收藏
- 关注
转载 聊聊面向对象的几个基本原则
一. 面向抽象原则首先先介绍抽象类和接口,然后介绍面向抽象编程。1. 抽象类和接口1.1 抽象类抽象类(abstract)具有如下特点:1. 抽象类中可以有abstract方法,也可以有非abstract方法。2. 抽象类不能使用new运算符创建对象。3. 如果一个非抽象类是某个抽象类的子类,那么它必须重写父类的abstract方法,即在子类中将abstract方法重新声明,但必须去掉abstra
2017-11-06 00:00:00 930
转载 聊聊面向对象的几个基本原则
一. 面向抽象原则首先先介绍抽象类和接口,然后介绍面向抽象编程。1. 抽象类和接口1.1 抽象类抽象...
2017-11-06 00:00:00 342
转载 自己实现集合框架(十四):队列接口
一. 什么是队列?队列和栈一样也是一种特殊的线性表,队列的特殊之处在于其插入和删除分别在线性表的两端进行,插入元素称为入队(enquene),删除元素称为出队(dequeue),允许入队的一端称为叫做队尾(rear),允许出队的一端叫做对头(front);这个和我们的理解不太一样,别记反了。没有元素的队列叫做空队列。队列的入队和出队操作的示意图如下图所示:由于队列的插入和删除操作分别在队列的队尾和
2017-07-17 00:00:00 311
转载 自己实现集合框架(十四):队列接口
一. 什么是队列?队列和栈一样也是一种特殊的线性表,队列的特殊之处在于其插入和删除分别在线性表的两端...
2017-07-17 00:00:00 191
转载 自己实现集合框架(十三):链式栈的实现
一.链式栈采用链式储存结构的栈叫做链式栈,采用单链表来实现。单链表的第一个结点为栈顶结点,设top指向栈顶结点,入栈操作是在当前栈顶结点之前插入新的结点;出栈操作是删除当前栈顶结点并返回栈顶元素值,再使top指向新的栈顶结点。链式栈的空栈(a),入栈操作(b)和出栈操作(c)如下图示所示:二.链式栈的实现1. 定义链式栈前面文章自己实现集合框架(十一):栈接口定义介绍了栈接口的定义,链式栈类Lin
2017-06-24 00:00:00 322 1
转载 自己实现集合框架(十三):链式栈的实现
一.链式栈采用链式储存结构的栈叫做链式栈,采用单链表来实现。单链表的第一个结点为栈顶结点,设top指...
2017-06-24 00:00:00 144
转载 自己实现集合框架(十二):顺序栈的实现
一. 点睛1. 什么是顺序栈?对于栈的概念请参考文章自己实现集合框架(十一):栈接口定义,那么什么是顺序栈呢?顺序栈指采用顺序储存结构储存数据元素的栈,比如采用数组来存放数据元素。栈有其固有的特点:只能在栈顶进行操作,后进先出等。那么数据元素在入栈出栈的过程中,顺序栈及其状态变化是怎么样的呢?例如,要操作的数据元素是A,B,C,D四个元素,执行操作的是:入栈——>入栈——>出栈——>入栈——>入栈
2017-06-06 00:00:00 382
转载 自己实现集合框架(十二):顺序栈的实现
一. 点睛1. 什么是顺序栈?对于栈的概念请参考文章自己实现集合框架(十一):栈接口定义,那么什么是...
2017-06-06 00:00:00 163
转载 自己实现集合框架(十一):栈接口定义
一. 什么是栈?栈是一种特殊的线性表,还有另外一种特殊的线性表是队列,后面我们会讲到。栈相对于线性表的特殊之处是其插入和删除操作只允许在线性表的一端进行。允许操作的一端叫做栈顶(top),不允许操作的一端叫做栈底(bottom),往栈中插入元素的操作称作入栈,往栈中删除元素的操作叫做出栈。由于对栈的操作只允许在栈顶进行,所以每次入栈的元素就成为新的栈顶元素,每次出栈的元素都是当前最后一个入栈的元素
2017-06-05 00:00:00 310
转载 自己实现集合框架(十一):栈接口定义
一. 什么是栈?栈是一种特殊的线性表,还有另外一种特殊的线性表是队列,后面我们会讲到。栈相对于线性表...
2017-06-05 00:00:00 168
转载 自己实现集合框架(十):双链表的实现
一. 双链表的数据结构1. 什么是双链表?双链表是针对于单链表而言的,我们知道,单链表的每个节点有两个域,一个是数据域,存储元素结点的数据,一个是next链域,存储该结点后继元素的地址。双链表的每个结点有三个域,一个数据域,存储元素结点的数据,两个链域,分别指向它的前驱结点和后继结点,单个结点结构示意图如下所示:双链表的结构如下图所示:2. 为什么要使用双链表?在单链表中,每个结点只有一个指向其后
2017-06-02 00:00:00 363
转载 自己实现集合框架(十):双链表的实现
一. 双链表的数据结构1. 什么是双链表?双链表是针对于单链表而言的,我们知道,单链表的每个节点有两...
2017-06-02 00:00:00 143
转载 自己实现集合框架(九):循环单链表的实现
一. 什么是循环单链表?循环单链表是指单链表的最后一个结点的next域指向单链表的头结点head,使单链表成为环形结构。1. 循环单链表设rear是单链表的尾结点,rear.next=head使得一条单链表成为循环单链表,如下图所示:2. 空的循环单链表(空链表)当head.next==head满足时,循环单链表为空,如下图所示:二. 循环单链表的实现1.定义循环单链表可排序单链表类Circula
2017-05-31 00:00:00 452
转载 自己实现集合框架(九):循环单链表的实现
一. 什么是循环单链表?循环单链表是指单链表的最后一个结点的next域指向单链表的头结点head,使...
2017-05-31 00:00:00 176
转载 自己实现集合框架(八):可排序单链表的实现
一. 什么叫可排序的单链表?场景描述:在项目中我们常常会有这样的需求,在存放元素的时候可以预先按照数值大小进行排序(升序或降序),那么在取出数据的时候就不需要再次排序了。什么叫可排序的单链表?可排序的单链表指单链表各结点的数据域data的值按照递增(由小到大)或者递减(由大到小)的方式链接起来。如何实现可排序的单链表?我们都知道java里面的TreeSet集合是可排序的,并且支持自然排序和定制排序
2017-05-27 00:00:00 304
转载 自己实现集合框架(八):可排序单链表的实现
一. 什么叫可排序的单链表?场景描述:在项目中我们常常会有这样的需求,在存放元素的时候可以预先按照数...
2017-05-27 00:00:00 186
转载 自己实现集合框架(七):带头结点单链表的实现
一. 什么叫带头结点的单链表?带头结点的单链表和普通的单链表差不多,只是在普通单链表的第一个结点之前增加一个特殊的结点,这个结点就叫做头结点。在带头结点的单链表中,head指向头结点。虽然头结点不是用来存储数据的,但是会占用一个存储单元,相当于牺牲一个结点的存储空间来简化单链表的操作。因为增加的头结点使得所有链表(包括空表)的头结点非空,并使得对单链表的插入,删除操作不需要区分该单链表是否为空表或
2017-05-26 00:00:00 655
转载 自己实现集合框架(七):带头结点单链表的实现
一. 什么叫带头结点的单链表?带头结点的单链表和普通的单链表差不多,只是在普通单链表的第一个结点之前...
2017-05-26 00:00:00 249
转载 自己实现集合框架(六):实现单链表逆转
一. 什么是单链表逆转?我们都知道,单链表的每个结点由两部分组成,一个数据域data和一个指向其后继结点的指针域next,最后一个结点的next域为空。单链表逆转就是将链表中各结点的next域指向它的前驱结点,原来第一个结点的next域为空,head指向原来的最后一个节点。二. 算法描述单链表的逆转算法描述如下:1. 初始,设置p结点指向第一个结点,front结点指向p的前驱结点,q结点指向p的后
2017-05-25 00:00:00 670
转载 自己实现集合框架(六):实现单链表逆转
一. 什么是单链表逆转?我们都知道,单链表的每个结点由两部分组成,一个数据域data和一个指向其后继...
2017-05-25 00:00:00 153
转载 自己实现集合框架(五):利用单链表解决约瑟夫环问题
一. 算法描述和实现在之前的文章中介绍了如何利用顺序表解决约瑟夫环的问题。在前面的基础上,利用单链表解决约瑟夫环很简单,只需要把自己实现集合框架(三):利用顺序表解决约瑟夫环问题中创建SeqList对象的语句替换为如下创建SinglyLinkedList对象语句,其余代码不变,则可求解约瑟夫环问题。执行new Josephus(5,2).sentence(1);,单链表的变化过
2017-05-23 00:00:00 503
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人