分类: C/C++
2015-07-02 12:18:09
顺序表和链表是各种数据结构的通用的两种实现方式!常见的数据结构有:线性表、树、哈希表(散列表)、堆(优先队列);
线性表
定义:线性表可以说是最简单的数据结构,它的描述为:n个数据元素的有限序列。
记为:L=(a1,a2,...,an)
实现方式:按照存储结构它又可以分为顺序存储结构和链式存储结构。
而其中线性表的顺序存储结构是最简单最常用的数据结构:用一段连续地址依次存储表中的数据元素。
增删操作的时间复杂度都是0(n),所以这两项操作都是不是它的强项。而查找操作的时间复杂度是O(1),那么线性表的顺序存储结构的优势就是可以快速的取出任意位置的元素。
链式存储结构的优点在于它在找到目标元素后,删除或者插入都十分方便,只需将指针挪动一次就好;缺点就是不能像顺序存储结构那样迅速的找到目标元素,只能笨笨的一个一个元素的遍历下去。
特殊的线性表:
栈是限定仅能在表尾进行插入或删除操作的线性表;和栈相反,队列是一种先进先出的线性表。
树
哈希表
定义:一个理想的哈希表数据结构就是一个包含有关键字的具有固定大小的数组(这里的数组下标索引就是(key-value)中的key)。
哈希表是一种用于以常数平均时间执行插入、删除和查找的技术;但是需要元素间任何排序信息的操作将不会得到有效支持。