链表不是随机存储的结构,他查找数据必须一个一个挨着寻找,
算法描述:从第一个结点(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 }