逻辑结构:数据之间的关系。常见的逻辑结构只有两种,即【线性结构】和【非线性结构】物理结构:在计算机中的存储方法。常见的物理结构只有两种,即【顺序存储】和【链式存储】常见数据结构:一.线性表1.线性表的逻辑结构:
a.有且只有一个开始结点a1,没有直接前驱,有唯一的直接后继a2 b.有且只有一个终.....
分类:
其他好文 时间:
2014-05-27 02:18:47
阅读次数:
167
双向(循环)链表是线性表的链式存储结构的又一种形式。
在之前已经讲述了单向链表和循环链表。相比于单向链表只能从头结点出发遍历整个链表的局限性,循环链表使得可以从任意一个结点遍历整个链表。
但是,不管单向链表也好,循环链表也罢,都只能从一个方向遍历链表,即只能查找结点的下一个结点(后继结点),而不能查找结点的上一个结点(前驱结点)。鉴于上述问题,引入了双向链表。由于双向循环链表包含双向链表的所有...
分类:
其他好文 时间:
2014-05-18 18:43:19
阅读次数:
341
采用C++模板类实现 1 #ifndef _List_H_ 2 #define
_List_H_ 3 #include 4 #include "stdlib.h" 5 template 6 class CNode 7 { 8 public:
9 T data; 10 ...
分类:
其他好文 时间:
2014-05-18 00:38:59
阅读次数:
407
对于线性表我们应掌握如下要点:1、 掌握线性表的结构特点:顺序存储和链式存储。2、
掌握线性表的基本操作:初始化,插入,删除,查找,判空,求线性表长度等运算在顺序存储结构和链式存储结构上的实现。顺序存储具有随机访问的特点,而链式存储具有顺序访问的特点。对于不同的应用我们应当选择不同的结构。顺序结构实...
分类:
其他好文 时间:
2014-05-18 00:23:40
阅读次数:
404
都是些定义,没什么需要过多注意的。只要知道几个概念就好:逻辑结构:数据结构中元素之间的关系物理结构/存储结构:数据结构在计算机中的表示。有两种:顺序存储结构(顺序映像)、链式存储结构(非顺序映像)
分类:
其他好文 时间:
2014-05-16 06:47:26
阅读次数:
235
线性表的定义:N个数据元素的有限序列
线性表从存储结构上分为:顺序存储结构(数组)和 链式存储结构(链表)
顺序存储结构:是用一段连续的内存空间存储表中的数据 L=(a1,a2,a3....an)
链式存储结构:是用一段一段连续的内存空间存储表中每一行的数据,段与段之间通过一个引用(指针)相互连接来,形成一个链式的存储结构
看到顺序存储结构的图示,我们可能会马上联想到C语言的数组...
分类:
编程语言 时间:
2014-05-16 01:43:08
阅读次数:
359
线性表的实现分顺序存储结构和链式存储结构上一节我们主要介绍了顺序存储结构,在最后我们还分别总结了顺序存储结构的优缺点,对于顺序结构的缺点,我们有没有什么好的解决方法呢?我们今天要介绍的线性表的链式存储结构就可以很好的解决顺序结构的缺点,一起来看。顺序结构最大的缺点就是在进行插入和删除操作的时候,如果...
分类:
其他好文 时间:
2014-05-15 20:41:51
阅读次数:
474
我们先来看一张之前整理过的一张二叉树的链式存储结构
1、每个数据域,都有2个指针域,分别指向该节点的左孩子、右孩子,但是每个节点前驱、后继,要知道的话需要遍历整棵树,这在时间上耗费很大。
2、另外,在叶子节点中,我们可以看到如图,每个节点都会浪费2块存储空间,N个节点的二叉树,2N个指针域,连接线为2N-1,那么会有2N-(N-1) = N+1个指针域浪费掉。
为了优化以上2...
分类:
其他好文 时间:
2014-05-15 13:30:19
阅读次数:
283
我们分别从存储分配方式、时间性能、空间性能三方面来做对比。
存储分配方式:
顺序存储结构用一段连续的存储单元依次存储线性表的数据元素。
单链表采用链式存储结构,用一组任意的存储单元存放线性表的元素。
时间性能:
查找
顺序存储结构O(1)
单链表O(n)
插入和删除
顺序存储结构需要平均移动表长一半的元素,时间为O(n)
单链表在计算出某位置的指针后,插入和删...
分类:
其他好文 时间:
2014-05-14 14:16:42
阅读次数:
335