1.常见数据结构
常见的数据结构 - 栈(Stack):栈是一种特殊的线性表,它只能在一个表的一个固定端进行数据结点的插入和删除操作。 - 队列(Queue):队列和栈类似,也是一种特殊的线性表。和栈不同的是,队列只允许在表的一端进行插入操作,而在另一端进行删除操作。 - 数组(Array):数组是一种聚合数据类型,它是将具有相同类型的若干变量有序地组织在一起的集合。 - 链表(Linked List):链表是一种数据元素按照链式存储结构进行存储的数据结构,这种存储结构具有在物理上存在非连续的特点。 - 树(Tree):树是典型的非线性结构,它是包括,2 个结点的有穷集合 K。 - 图(Graph):图是另一种非线性数据结构。在图结构中,数据结点一般称为顶点,而边是顶点的有序偶对。 - 堆(Heap):堆是一种特殊的树形数据结构,一般讨论的堆都是二叉堆。 - 散列表(Hash table):散列表源自于散列函数(Hash function),其思想是如果在结构中存在关键字和T相等的记录,那么必定在F(T)的存储位置可以找到该记录,这样就可以不用进行比较操作而直接取得所查记录。
不同的数据结构的优缺点见下表: |数据结构|优点|缺点| |-|-|-| |无序数组|插入快|查找慢,删除慢,大小固定,类型一致| |有序数组|查找快|插入慢,删除慢,大小固定,类型一致| |栈|后进先出|存取其它项慢| |队|先进先出|存取其它项慢| |链表|插入和删除快|查找慢| |二叉树|如果是平衡的查找、插入和删除都快|删除算法复杂| |红黑树|查找、插入和删除都快,树总是平衡的|平衡算法复杂| |2-3-4树|查找、插入和删除都快,树总是平衡的,类似的树对磁盘存储有效|平衡算法复杂| |哈希表|已知键存取值很快|删除慢,如果不知道关键字存取慢,空间使用率不高| |堆|插入和删除很快,最大数据项存储快|存取其它项慢| |图|对现实世界建模|算法慢其复杂|
2.常见算法
数据结构研究的内容:就是如何按一定的逻辑结构,把数据组织起来,并选择适当的存储表示方法把逻辑结构组织好的数据存储到计算机的存储器里。算法研究的目的是为了更有效的处理数据,提高数据运算效率。数据的运算是定义在数据的逻辑结构上,但运算的具体实现要在存储结构上进行。一般有以下几种常用运算:
