链表不是随机存储的结构,他查找数据必须一个一个挨着寻找,

算法描述:从第一个结点(L->next)开始扫描,用P指向当前扫描到的结点,p的初值: p = L->next; J作计数器,每扫描一个结点计数器加一;当 j==i 时就是我们要找的结点

1 Status GetElem(LinkList L,int i;ElemType &e){  //获取从链表L中获取元素,获取的是第i个,返回值是e
 2   p=L->next;    //初始化p指向首元结点,同时定义计数器为0;
 3    j=1;
 4   while(p&&j<i){    //p存在且计数器的值小于所含元素的值时进行循环,若等于则不能进行循环
 5    p=p->next;  存在值,则将指针后移,同时计数器加一
 6    j++;
 7 }
 8     if(!p||j>i)   如果P不存在,或者计数器的值比要取得值大则报错,否则输出该位置的元素
 9    return error;
10    e = p->next;  
11 }