数据结构概述



一、算法的基本概念

计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。

1、算法的基本特征:可行性,确定性,有穷性,拥有足够的情报。

2、算法的基本要素:算法中对数据的运算和操作、算法的控制结构。

3、算法设计的基本方法:列举法、归纳法、递推、递归、减半递推技术、回溯法。

4、算法设计的要求:正确性、可读性、健壮性、效率与低存储量需求


二、算法的复杂度

1、时间复杂度:指执行算法所需要的计算工作量

2、空间复杂度:执行这个算法所需要的内存空间


三、数据结构的定义:

1、数据在计算机中的组织。包括逻辑结构,存储结构、数据运算。

2、逻辑结构:集合结构;线性结构;树形结构;图形结构

3、存储结构:顺序存储;链式储存;散列存储

4、数据运算:查找、插入、删除


四、线性表

线性表示一种逻辑结构,其存储结构分为:顺序存储和链式存储。

1、顺序表:线性表的顺序存储结构。一般用一维数组来实现。

                   数据操作:

                                    插入:O(n)        

                                    删除O(n)          

                                    查找O(1)

2、链表:线性表的链式存储结构。有单链表、单循环链表、双链表、双循环链表

                数据操作:

                               插入:O(n)

                               查找:O(n)

                               删除:O(n)

【比较】

        从上述结构来看,链表的总体性能比顺序表差,但是,链表在进行频繁插入、删除操作时,就有一定的优势,例如,在同一个位置插入10个元素,顺序表在进行每次插入时都需要进行移动操作,而链表在第一次插入后,由于已经确定了插入的位置,所以后面每次插入仅为O(1)。所以,

(1)当线性表需要大量查找,又很少需要插入、删除操作时,宜采用顺序存储结构;当线性表需要大量查找、删除操作时,宜采用链表。

(2)当线性表中元素个数变化较大、或者不知道其个数时,采用链表较好。


线性表从存储结构角度分为顺序表和链表,而从数据操作上分分为栈和队列

3、栈:只能在栈顶进行插入删除操作的线性表。

     按照不同的存储结构分为顺序栈和链栈。

     栈的数据操作:

                      插入,删除:O(1)

                      查找:O(n)

4、队列:只能在一端进行插入,另一端进行删除操作线性表。

      按照不同的存储结构分为顺序队列和链式队列。

     队列的数据操作:

                    插入、删除:O(1)

                    查找:O(n)

五、树形结构

         二叉树

         满二叉树

         完全二叉树

         B数

         AVL数

         红黑树

         请参考:各种二叉树的介绍


六、图形结构

七、排序

八、查找

猜你喜欢

转载自blog.csdn.net/king110108/article/details/80305085