数据结构专题
文章平均质量分 78
Jesministrator
这个作者很懒,什么都没留下…
展开
-
数据结构专题——那些难以理解的数据结构基本概念
不知有没有人和博主一样,在上大学的时候最头疼的一门课就是数据结构与算法了,其中枯燥的概念、冗长的伪代码都让博主昏昏欲睡。尤其是严大妈在《数据结构》中开篇讲述的数据结构、数据类型与抽象数据类型的概念,让博主完美地将这三个概念混淆了很久(这里没有黑严大妈的意思……但是数据结构确实给当时没有认真听课的博主留下了深刻的印象)。原创 2017-10-31 21:37:32 · 697 阅读 · 0 评论 -
数据结构专题——线性表之顺序表及其Java实现
在上一篇博客中,博主为大家介绍了关于数据结构的三个基本概念:数据结构,数据类型,抽象数据类型。在本篇博客中,博主将为大家介绍本系列中第一个出场的数据结构——线性表。顾名思义,线性表就是一种具有像线一样性质的表。比如在操场上站成一列的学生们,总有一个打头,一个结尾,中间的任何一个学生都知道自己前一名同学是谁和后一名同学是谁,就像有一根线将他们串了起来一样。原创 2017-10-31 22:11:47 · 423 阅读 · 0 评论 -
数据结构专题——线性表之单链表及其Java实现
在上一篇博客中,博主和同学们一起认识了本系列中的第一个数据结构——线性表。在提供了抽象数据类型(ADT List)和Java版的MyList之后,我们又基于Java语言实现了在内存中顺序存储的线性表(也称为顺序表)。尽管我们在遇到频繁访问列表中元素时,ArrayList是一个很好的选择;但当我们需要频繁添加、删除列表中元素,尤其是在表的前端进行增删操作时,ArrayList就不是一个特别好的选择了。原创 2017-10-31 22:15:12 · 305 阅读 · 0 评论 -
数据结构专题——线性表之双链表及其Java实现
在上一篇博客中,博主和大家一起实现了线性表的链式存储,由于链表中每个节点都只有一个指针域指向着后继节点,因此这种链表也叫单链表。这种链表的缺点显而易见,因为只能够单向遍历,即使我们想要访问最后一个元素也不得不从第一个元素开始遍历到最后一个元素。为了解决这个问题,双链表应运而生。和单链表十分相似,唯一的区别在于每个节点当中包含两个指针域,分别指向着这个节点的前驱节点和后继节点。原创 2017-10-31 22:18:21 · 247 阅读 · 0 评论 -
数据结构专题——栈与队列之顺序栈及其Java实现
在前面的几章博客中,我与同学们一起熟悉了线性表这个基础的数据结构,今天我们要学习的这个数据结构和线性表有着紧密的联系,它就是——栈。栈的定义很简单:栈(Stack)是限定仅在表尾进行插入和删除操作的线性表。我们一起来解读一下栈的定义,首先栈是一个线性表,因此它也是一个具有零个或多个数据元素的有限序列;其次栈只允许在表的尾部进行插入和删除元素,而不像是普通的线性表能够在任意位置添加删除元素。原创 2017-11-01 16:29:33 · 305 阅读 · 0 评论 -
数据结构专题——栈与队列之链栈及其Java实现
在上一篇博客中,博主与大家学习了一个新的数据结构——栈。它是一个只被允许在栈顶进行插入与删除元素的特殊线性表,是一种典型的LIFO的数据结构。在我们用数组的方式实现了顺序存储的顺序栈之后,本章博客中我们就一起来尝试实现一个链式存储的栈吧。和普通的线性表一样,我们可以选择用单链或者是双链来实现这个数据结构。由于栈只能够在栈顶进行入栈和出栈操作,因此一个只含有栈顶节点的单链表就可以轻松实现它了。原创 2017-11-01 20:54:57 · 317 阅读 · 0 评论 -
数据结构专题——栈与队列之栈的应用(一)
在自己实现了内存中顺序存储和链式存储的栈结构之后,有的同学可能还是有一些疑问。既然都是线性表,我们为什么不直接使用顺序表或链表,反而要创造出一种特殊的线性表呢?其实答案很简单,通过我们规定了特殊规则之后的线性表,能够更轻松地完成很多工作。原创 2017-11-04 10:34:58 · 407 阅读 · 0 评论