一,头插法基本步骤
//头插法是要把每次插入的节点作为首元节点,也就是说头节点指针域里面存放的始终是新插入节点的地址
Status CreatList_H(Linklist &L,int n) //Status是一种类似int的类型,是要由用户根据题目需求建立的 ,例如我需要Status是个int类型的,就需要给int重命名为Status
{
int i;
LNode *p; //定义一个新节点,作为我们要插入的节点
L=new LNode; //分配一个LNode类型大小的空间 ,作为头结点
L->next=NULL; //刚开始创建时只有一个头结点,所以头结点的指针域为空
for(i=0;i<n;i++){ //n是要插入节点的个数
p=new LNode; //为要插入的节点分配一个LNode类型大小的空间
cin>>p->data; //输入要插入的数据
p->next=L->next;// 因为要在头结点之后插入新的节点,所以要把L->next的地址传给p,使该节点与下一个节点联系起来
L->next=p; //要使新插入的节点与头结点联系起来,就要使头节点的指针域中存放新插入节点的地址
}
}
二、算法时间复杂度
T(n)=O(n);
因为我们看基本语句的话,是for循环里面执行次数最多,所以for循环执行的次数决定了最终的数量级,而由循环我们知道循环执行了n次,所以F(n)=n;