1.顺序表的求元素值:
bool GetElem(SqList *L, int i, ElemType &e) //求线性表中某个数据元素值
{
if (i < 1 || i > L -> length)
return false; //参数错误时返回false
e = L -> data[i - 1]; //取元素值
return true; //成功找到元素时返回true
}
2.单链表的求元素值:
bool GetElem(LinkList *L, int i, ElemType &e) //求线性表中某个数据元素值
{
int j = 0;
LinkList *p = L; //p指向头节点,j置为0(即头节点的序号为0)
while (j < i && p != NULL) //找第i个节点
{ j++;
p = p -> next;
}
if (p == NULL) //不存在第i个数据节点,返回0
return false;
else //存在第i个数据节点,返回1
{ e = p -> data;
return true;
}
}
3.双链表的求元素值:
bool GetElem(DLinkList *L, int i, ElemType &e) //求线性表中某个数据元素值
{
int j = 0;
DLinkList *p = L;
while (j < i && p != NULL)
{
j++;
p = p -> next;
}
if (p == NULL)
return false;
else
{
e = p -> data;
return true;
}
}
<