表:即线性表,在逻辑上表的元素是线性关系,其元素是以线性的方式进行排列的,并提供对他的元素直接的访问,
线性表的实现方式有两种:
1、顺序表示
2、链表实现
线性表的顺序表示是指用一组地址连续的存储单元依次存储线性表的数据元素,
假设每个元素需占用一个存储单元,所占的地址进行数据元素的存储,即:
loc(i+!)=loc(i)+1;
线性表的链式表达式可以用一组任一的存储单元存储线性表的元素,
元素之间的关系依赖于元素之间的联系。在链表描述中,数据的对象实例的每个院都放在单元或者节点进行描述,
每个节点中都包含了该节点的相关的其他节点的位置信息。这种关于其他节点的位置信息称之为链或者指针。
表的链的实现:
template<class T> class chain;
template<class T>
class chainnode
{
friend chain<T>;
private:
T data;
chainnode<T>*link;
};
template<class T>
class chain
{
public:
chain(){ first = 0; }
~chain(){};
int lenght()const;
int search(const T&x)const;
chain<T>&delete(int k, T& x);
chain<T>&insert(int k, const T& x);
private:
chainnode<T>* first;
};