单链表的读取
获取链表第i个数据的算法思路:
声明一个结点p指向链表第一个结点,初始化j从1开始;
当j<i时,就遍历链表,让p的指针向后移动,不断指向下一个结点,j累加1;
若到链表末尾p为空,则说明第i个元素不存在;
否则查找成功,返回结点p的数据;
typedef struct Node
{
ElemTypedata;
structNode *next;
} Node;
typedef struct Node *LinkList;
/*初始条件:顺序线性表L已存在,1《i《ListLength(L)*/
/*操作结果:用e返回L中第i个数据元素的值*/
status GetElem(LinkList L, int i, ElemType *e)
{
intj;
LinkListp;
p= L->next;
j= 1;
while(p&&j<i)
{
p= p->next;
++j;
}
if(!p || j>1)
{
returnERROR;
}
*e= p->data;
return OK;
}