单链表概念
单链表是一种最简单的链表表示,也叫做线性链表。用它来表示线性表时,用指针表示节点间的逻辑关系。因此单链表的一个存储结点(node)包括两个部分:数据域(data),指针域(link)。data部分用于存放数据,link部分用于存放指针表示该链表中下一个节点的开始存储地址。
相比于同为线性结构的数组,链表可以很方便的进行扩充,尽管可能链表中顺序与节点的物理存储顺序不一致,但仍然可以通过指针按照逻辑顺序连接起来。链表的优缺点非常明显,方便进行各种增改删除等操作,但将付出额外的存储空间。
单链表的抽象数据类型类定义
用结构地构成节点node
struct node //链表节点定义
{
int data; //链表数据类型
node *link;
}*p; //表头指针定义
则完整的LinkList.h头文件的写法如下。我写了
class LinkList
{
private:
struct node //链表节点定义
{
int data; //链表数据类型
node *link;
}*p; //表头指针定义
public:
LinkList(void);
~LinkList(void);
//返回表头指针
node * getHeadPoint();
//逐个添加链表元素,尾部添加
void append( int element );
//将链表listB与当前链表合并
void merger( LinkList::node * hp_listB, int bFirst);
//从首部添加链表元素
void addasFirst( int element );
//从指定位置将元素生成结点添加链表,如 从链表第 location == 2个元素后,添加 element == 23
void addAfter( int element, int location);
//删除指定链表元素值大小的所有结点
void remove( int element ); &