#include
#include
typedef struct Lnode{
ElemType data;
struct Lnode *next;
}Lnode,*linkList;//定义一个单链表结构
bool insert(linkList &L,int i,ElemType e)
{
if(i<1)//位序小于1,说明输入不合法
return false;
Lnode *p;//定义一个指针用于指向第i-1个元素
int j=0;//用于记录i-1的位置
p=L;//L指向头结点,头结点是第0个结点,不存储数据
while(p!=NULL&&j
j++;
}
if(p==NULL)//比如:插入到第六个,实际长度只有4
return false;
Lnode *s=(Lnode *)malloc(sizeof(Lnode));//申请空间用于存放新数据
s->data=e;//将数据存入
s->next=p->next;
p->next=s;//将s结点与链表连接起来
//位置不能颠倒
return true;
}
#include
#include
//带头结点
typedef struct Lnode{
ElemType data;
struct Lnode *next;
}Lnode,*linkList;//定义一个单链表结构
//不带头结点
bool ListInsert (linkList &L,int i, elemtype e)
{
if(i<1)
return false;
if(i1){//不带头结点与带头结点情况不同,需要改变头指针的指向
Lnode *s=(Lnode *)malloc(sizeof(Lnode));
s->data=e;
s->next=L;
L=s;
return true;
}
Lnode *p;
int j=1;//不带头结点结点个数从1开始算
p=L;
while(p!=NULL&&j
j++;
}
if(pNULL)
return false;//输入的I值不合法
Lnode *s=(Lnode *)malloc(sizeof(Lnode));
s->data=e;
s->next=p->next;
p->next=s;
return true;
}
}



