线性表的实现方式有两种,一种是顺序表示,另一种是链表实现。
线性表体现的是数据元素之间的唯一性,连续性(如英文字母表)。
顺序表示是指用一组地址连续的存储单元依次存储线性表的数据元素。
LOC(A+1) = LOC(A) + 1; //LOC(A)是线性表的第一个数据元素的存储位置,线性表的起始位置或基地址。
顺序表(顺序表示)的特点是以元素在计算机内物理位置相邻来表示线性表中数据元素之间的逻辑关系。
需要预先分配表的大小,在超过原有大小后需要重新分配连续的空间。
链式表示是指用一组任意的存储单元线性表的数据元素。元素之间的关系依赖与元素之间的联系。在链表描述中,数据对象实例的每个元素都放在单元或结点中进行描述。每个结点中都包含了与该结点相关的其他结点的位置信息。这种关于其他结点的位置信息被称之为链或指针。
template <class T>
class Node
{
private:
T data; //结点的值
Node<T> *link; //结点指向的下一结点的指针
}
不用预先分配大小,需要存储额外的信息以实现表的逻辑关系。
线性表的基本操作包括表的初始化,清空表,判断表是否为空,获取表的长度,获取表中的元素,获取表的前一个元素,以及元素的插入,删除等。
——整理自《C/C++程序员面试宝典》
时间: 2024-10-16 20:41:23