next;
}
if(p==null)return 0;
else
{
s=(linklist *)malloc(sizeof(linklist));
s->data=e; s->next=p->next; p->next=s;
return 1;
}
}
int listdelete(linklist *&l,int i,elemtype &e) //删除数据元素
{
int j=0;
linklist *p=l,*q;
while(jnext;
}
if(p==null)
return 0;
else
{
q=p->next;
if(q==null)return 0;
e=q->data;
p->next=q->next;
free(q);
return 1;
}
}
int main()
{
elemtype e,a[5]={'a','b','c','d','e'};
linklist *h;
initlist(h); //初始化顺序表h
createlistr(h,&a[0],5); //依次采用尾插入法插入a,b,c,d,e元素
printf("单链表为:");
displist(h); printf("\n"); //输出顺序表h
printf("该单链表的长度为:");
printf("%d",listlength(h)); printf("\n"); //输出顺序表h的长度
if(listempty(h)) printf("该单链表为空。\n");
else printf("该单链表不为空。\n"); //判断顺序表h是否为空
getelem(h,3,e);printf("该单链表的第3个元素为:");
printf("%c",e); printf("\n"); //输出顺序表h的第3个元素
printf("该单链表中a的位置为:");
printf("%d",locateelem(h,'a')); printf("\n"); //输出元素'a'的位置
listinsert(h,4,'f'); //在第4个元素位置插入'f'素
printf("在第4 个元素位置上插入'f'后单链表为:");
displist(h); printf("\n"); //输出顺序表h
listdelete(h,3,e); //删除l的第3个元素
printf("删除第3个元素后单链表为:");
displist(h); printf("\n"); //输出顺序表h
destroylist(h); //释放顺序表h
return 0;
}