随笔分类 - Data Structure
摘要:邻接矩阵是一种不错的图存储结构,但是我们发现,对于边数相对较少的图,这种结构是存在对存储空间的极大浪费的。我们知道,顺序存储结构存在预先分配内存可能造成空间浪费的问题,于是引出了链式存储的结构。同样的,我们也可以考虑对边或弧使用链式存储的方式来避免空间浪费的问题。因此,对于图的存储结构,我们同样引入
阅读全文
摘要:图:是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。注意:(1).线性表中我们把数据元素叫元素,树中将数据元素叫结点,而图中数据元素,我们一般称之为顶点;(2).在图结构中,不允许没有顶点,在定义中,若V是顶点的集
阅读全文
摘要:树:是n个结点的有限集;n=0时称为空树。在任意一棵非空树中,有且只有一个特定的结点称为根结点;其余的结点可分为m(m>0)个互不相交的有限集,其中每一个有限集都是一棵子树。结点拥有的子树数称为结点的度;度为0的结点称为叶结点或者终端结点,度不为0的结点称为分支结点或者非终端结点;树的度就是树内各结
阅读全文
摘要:前面我们讲了队列的顺序存储结构,现在我们来看看队列的链式存储结构。队列的链式存储其实就是线性表的单链表结构,只不过它是尾进头出而已,通常我们把它简称为链队列。为了操作上的方便,我们将队头指针front指向链队列的头结点,而队尾指针rear则指向终端结点。注意:当队列为空时,指针front和rear都
阅读全文
摘要:队列:是指只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出的线性表,这与栈的后进先出正好相反;其中允许插入的一端我们称为队尾,允许删除的一端我们称为队头(或队首)。假设队列Q=(a1,a2,......an),那么a1就是队头元素,an就是队尾元素;我们删除数据时,总是从
阅读全文
摘要:栈的链式存储结构,我们一般简称为“链栈”。由于单链表有头指针,而栈顶指针也是必须要有的,所以我们通常把栈顶放在单链表的头部,有了栈顶在头部,单链表中比较常用的头结点就失去了意义。通常对于链栈来说,是不需要头结点的,也基本不存在栈满的情况,除非内存已经没有使用的空间了。但对于空栈来说,链表原定义是头指
阅读全文
摘要:栈:是限定仅在表尾进行插入与删除操作的线性表。我们把允许插入与删除的一端称为栈顶,另一端称为栈底,不含任何数据元素的称为空栈。栈的插入操作,叫作进栈,也叫压栈、入栈,类似于子弹入弹夹;栈的删除操作,叫作出栈,也叫弹栈,如同弹夹中的子弹出夹。注意:栈的定义中的“表尾”指的是“栈顶”,而不是“栈底”。
阅读全文
摘要:前面我们所讲的线性表的顺序存储结构,它是有优缺点,最大的缺点是插入与删除时需移动大量的元素,这显然需要耗费许多时间。这时,我们就引入线性表的链式存储结构,它的特点是:用一组任意的存储单元存储线性表的数据元素,这组存储单元可以是连续的,也可以是不连续的。这就意味着,这些数据可以存在内存中未被占用的任意
阅读全文
摘要:首先,数据结构是由某一数据元素集合及该集合中所有数据元素之间的关系组成。具体来说,数据结构应当包含三方面的内容:(1).数据的逻辑结构;(2).数据的存储结构;(3).对数据所施加的操作。而数据的存储结构形式有两种:顺序存储与链式存储。在这里,先谈一谈线性表的顺序存储。 线性表:零个或多个数据元素的
阅读全文

浙公网安备 33010602011771号