今天我用代码和文字来展示一下链表中的前插法与尾插法这两个重要的算法过程
typedef struct list
{
int data;
struct list * pNext;
}LinkList;
链表的结点元素结构
前插法指的是将新结点逐次插入到链表的头部,即每次都插在头结点的后面
void FrontCreateList(LinkList *L,int n)
{
L->pNext=NULL;//头结点
for(int i=0;i<n;i++)
{
LinkList * p=new LinkList;//新结点
scanf("%d",&p->data);
p->pNext=L->pNext;//新结点指向原先头结点指向的下一个结点
L->pNext=p;//头结点的下一个结点为新插入的结点
}
}
尾插法:将新结点逐个插入到链表的尾部来创建链表
void BehindCreateList(LinkList *L,int n)
{
L->pNext=NULL;
LinkList * tail=L;//tail为尾结点
for(int i=0;i<n;i++)
{
LinkList * p=new LinkList;
scanf("%d",&p->data);
p->pNext=NULL;
tail->pNext=p;
tail=p;
}
}