文档介绍:/./moban单链表简介单链表是一种链式存储结构,由存储数据元素信息的域(数据域)和一个存储直接后继位置的域(指针域)组成。我们通常在单链表的第一个结点之前附设一个结点,称为头结点。它可以存放数据信息也可以不存放。单链表的插入过程分为三步,第一步是建立新的结点,第二步是改变新的结点的指向,最后是改变之前结点的指向。其中指针域的改变用代码表达就是:s->next=p->next;p->next=s;单链表插入图解单链表删除图解单链表的删除仅需修改结点的指针域即可,用指针语句为:p->next=p->next->next;/moban循环链表与单链表的对比单链表的构造函数:单向循环链表的构造和插入第一个结点的函数Clist(){length=0;head=newnode;head->next=NULL;}BoolClist::InsertFirst(intdata){if(length!=0)returnfalse;node*newnode=newnode;newnode->data=data;newnode->next=head;head->next=newnode;length++;returntrue;}LinkList(){length=0;head=newNode;head->next=NULL;},整个链表形成一个环,而单链表不是。,那么两个动态链表的合并的时间复杂度仅为O(1),而单链表的合并的时间复杂度基本上是O(+),单链表的临时指针p的循环条件为p是否为空,而对于单向循环链表临时指针p的循环条件为是否等于头指针。他们的时间复杂度是一致的,都为O(n)循环链表的插入函数boolClist::Insert(intposition,intdata){if(length==0){InsertFirst(data);returntrue;}if(position<1||position>length+1)returnfalse;inti=1;node*p=head;while(p->next!=head&&i<position){p=p->next;i++;}node*newn=newnode;newn->data=data;newn->next=p->next;p->next=newn;length++;returntrue;}/moban双向链表与单链表的对比单链表的构造函数:LinkList(){length=0;head=newNode;head->next=NULL;}双向链表的构造函数Dlist(){head=newdnode;tail=newdnode;head->next=tail;tail->prior=head;tail->next=NULL;head->prior=NULL;length=0;}/,双向链表的普通的结点有两个指针域分别指向它的前驱和后继,而单链表只有指向后继结点的指针域。