指针为数据元素之间逻辑关系的映射
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,* LinkList;
Status GetElem(LinkList L,int index,ElemType &elem)
{
if(index<=0)
exit(0);
LinkList p=L->next;
int i=1;
while(i<index&&!p){
p=p->next;
}
if(!p)
elem=p->data;
else
return ERROR;
return OK;
}
Status ListInsert_L(LinkList L,int i,ElemType e)
{
p=L;
j=0;
while(p&&j<i-1){
p=p->next;
++j;
}
if(!p||j>i)return ERROR;
s=(LinkList)malloc(sizeof(LNode));
s->data=e;
s->next=p->next;
p->next=s;
return OK;
}
Status ListDelete_L(LinkList L,int i,ElemType &e)
{
p=L;
j=0;
while(p->next&&j<i-1){
p=p->next;
++j;
}
if(!(p->next)||j>i-1)return ERROR;
q=p->next;
p->next=q->next;
e=q->data;
free(q);
return OK;
}
单链表的存储结构及其基本操作
最新推荐文章于 2022-09-23 22:48:32 发布