------------------------先要定义单链表
typedfed struct LNode
{elemtype data;
struct LNode *next;
}LNode;
------------------头插法建表
linklsit Creat(linklist &L) // 逆位序输入n个元素的值,建立带表头结点的单链线性表L
{int node;linklist p;
L=(elemtype)malloc(sizeof(LNode));
L->next=NULL; //建立带头节点的空链表
while(node!=0)
{p=(elemtype)malloc(sizeof(LNode)); //生成新节点
scanf("%6d",&node); //输入元素,以零结束
node=p->data;
p->next=L->next;
L-next=p;} //插入表头
}
---------------------------插入一个元素
linklist Insert(linklist &L,int i,elentype x)
{int j;linklist p,s;
p=L;j=0;
while(p!=NULL&&j
{p=p->next;j++;} //寻找第i-1个节点
if(p==NULL||j>=i)
return ERROR;
else{s=(elemtype)malloc(sizeof(LNode);) //生成新结点
s->data=x;
s->next=p->next;
p->next=s;} //插入元素x
return L;
}
-------------------------删除一个元素
liklsit delete(linklist &L,int i, elemtype &x)
{int j;liklsit p,q;
j=0;p=L;
while(p->next!=NULL&&j
{p=p->next;j++;} //找到第i-1个元素
if(p->next==NULL||j>=i)
return ERROR;
else{q=p->next; //删除第i个元素
p->next=q->next;
x=q->data;
free(q);}
return L;}