69,373
社区成员
发帖
与我相关
我的任务
分享
Status GetElem_L(LinkList &L,int i, ElemType &e)
{
// L为带头结点的单链表的头指针,当第i个元素存在时,其值赋给e并返回OK,否则返回ERROR
LinkList p;
p=L->next;
int j = 1; // 初始化,p指向第一个结点,j为计数器
while (p && j<i)
{ // 顺指针向后查找,直到p指向第i个元素或p为空
p = p->next; ++j;
}
if ( !p || j>i )
return ERROR;
//问题就在这???: j怎么会大于i呢?我认为j最多只能等于i,
//绝对不可能大于i,这个条件j>i仿佛是多余,这个条件我觉得应该改为如下:
/*
if(!p)
return ERROR; 不知各位网友如何认识这个问题。
*/ e = p->data; // 取第i个元素
return OK;
} // GetElem_L
Status GetElem_L(LinkList &L,int i, ElemType &e)
{
// L为带头结点的单链表的头指针,当第i个元素存在时,其值赋给e并返回OK,否则返回ERROR
LinkList p;
p=L->next;
int j = 1; // 初始化,p指向第一个结点,j为计数器
while (p && j<i)
{ // 顺指针向后查找,直到p指向第i个元素或p为空
p = p->next; ++j;
}
if ( !p || j>i )
return ERROR;
//问题就在这???: j怎么会大于i呢?我认为j最多只能等于i,
//绝对不可能大于i,这个条件j>i仿佛是多余,这个条件我觉得应该改为如下:
/*
if(!p)
return ERROR; 不知各位网友如何认识这个问题。
*/
e = p->data; // 取第i个元素
return OK;
} // GetElem_L