#include<stdio.h>
#include<stdlib.h>
#define ERROR -1
#define OK 1
typedef int status;
typedef struct lnode
{
int data;
struct lnode *next;
}lnode ,*linklist;
int main()
{
linklist L=NULL;
//int t=1;
//int datas=100;
//lnodeinsert(L,t,datas);
creaeteexxxx_l(L,5);
return 0;
}
void create_l(linklist &l,int n)
{
l= (linklist)malloc(sizeof(lnode));
l->next = NULL;
int i;
for(i=n;i>0;i--)
{
linklist p=(linklist)malloc(sizeof(lnode));
scanf("%d",&p->data);
p->next = l->next;
l->next = p;
}
}
status lnodeinsert(linklist &l,int i,int e)
{
linklist p = l; int j=0;
while(p && j < i-1 )
{
p = p->next;
j = j+1;
}
if(!p||j>i) return ERROR;
linklist s = (linklist)malloc(sizeof(lnode));
s->data = e;
s->next = p->next;
p->next = s;
return OK;
}
status lnodedelete(linklist &l ,int i,int &e)
{
//删除第i个节点,并由e返回
linklist s=l;
int j=0;
while(s->next && j<i-1) //寻找第i个节点并让s指向其前驱
{
j=j+1;
s=s->next;
}
if(j>i || !(s->next)) return ERROR;
q=s->next;
s->next=q->next;
e=q->data;
free(q);
return OK;
}
status getelem_nodedata(linklist &l ,int i,int e)
{
linklist p=l->next;
int j=1;
while( p &&j<i)
{
p=p->next;
j=j+1;
}
if(!p || j>i) return ERROR;
e = p->data;
return OK;
}
merage the two list
void merage(linklist &a,linklist &b ,linklist &c)
{
linklist pa=a->next;
linklist pb=b->next;
linklist pc=a;
while(pa && pb)
{
if(pa->data >pb ->data)
{
pc->next=pa; pc=pa ;pa=pa->next;
}
else
{
pc->next =pb; pc=pb ;pb=pb->next;
}
}
pc->next=pa?pa:pb;
free(b);
}