定义
typedef struct LNode{int data;
struct LNode *next;}LNode,*LinkList;
初始化
Status InitList(LinkList &L)
L= new LNode;L->next=NULL;return OK;
}
}
取值
void GetElem(LinkList L,int i,int &e)
{
LinkList p=L->next;int j=1;
while(p&&j<i){
p=p->next;
++j;
}
if(!pllj>i) printf("错误");
e=p->data;
}
查找
LNode *LocateElem(LinkList L,int
e)
LinkList p=L->next;
while(p&&p->data!=e)
p=p->next;
return p;
}
}
插入
void Listlnsert(LinkList &L,int i,int e)
{
LinkList p=L;int j=0;
while(p&&(j<i-1))
p=p->next;
++j;
}
if(!pllj>i-1)
printf("错误");
LinkList s=(LinkList)malloc(lnm);
S->data=e;
s->next=p->next;p->next=s;
}
}
删除
void ListDelete(LinkList &L,int i)
{
LinkList p=Lint j=0;
while((p->next)&&(j<i-1)){p=p->next;
++j;
}
if(!(p->next)ll(j>i-1)) printf("错误");LinkList q=p->next;p->next=q->next;delete q;
}
前插法创建单链表
void CreateList_H(LinkList &L,int n,int a[])
L=new LNode;
L->next=NULL;
for(int i=0;i<n;i++)
{
LinkList p=(LinkList)malloc(lnm); p->data=a[i];
p->next=L->next;
L->next=p;
}
}
尾插法创建单链表
void CreateList_R(LinkList &L,int n,int a[])
L=new LNode;
L->next=NULL;
LinkList r=L;
for(int i=0;i<n;++i)
LinkList p=new LNode;
p->data=a[i];
p->next=NULL;
r->next=p;
r=p;