//单链表
#define ok 1
#define maxsize 100
#include<stdlib.h >
#define ERROR -1
typedef int Elemtype;
typedef int Status;
//1定义
typedef struct Lnode{
Elemtype data;
struct Lnode *next;
}Lnode ,*LinkList;
//2初始化
Status initLinkList(LinkList L){
L=(LinkList)malloc(sizeof(Lnode));
L->next=NULL;
return ok;
}
//3判断链表是否为空
int ListEmpty(LinkList L){
if(L->next)
return 0;
else{
return 1;
}
}
//4销毁
Status DeleList(LinkList&L){
LinkList p;
while(L!=NULL){
p=L;
L=L->next;
free(p);
}
}
//5清空
Status clearList(LinkList&L){
LinkList p,q;
p=L->next;
while(p!=NULL){
q=p->next;
free(p);
p=q;
}
L->next=NULL;
return ok;
}
//6求链表表长
int lengthLink(LinkList L){
LinkList p;
p=L->next;
int i=0;
while(p!=NULL){
i++;
p=p->next;
}
return i;
}
//7取单链表中第i个元素
Status GetLink(LinkList L,int i,Elemtype &e){//i是获取元素的位置,通过e返回
LinkList p;
p=L->next;
int j=1
while((p!=NULL)&&(j<i)){
p=p->next;
++j;
}
if(!p||j>i){
return ERROR;
}else{
e=p->next;
return ok;
}
}