在单链表中,任何两个元素的存储位置之间没有固定的联系。然而,每个元素的存储位置都包含在其直接前驱结点的信息中。假设P是指向线性表中的第i个数据元素(结点ai)的指针,则p->next是指向第i+1个数据元素(结点ai+1)的指针。由此,在单链表中,取得第i个数据元素必须从头指针出发寻找。下面我们来看函数getelem在单链表中的实现。 Status Getelem_L (Linklist L,int i,ElemType&e) { //L为头指针 p=L->next; j=1; 初始化 while(p&&j<i){ //顺指针向后查找,直到p指向第i个元素或p为空 p=p->next; ++j; } if(!p||j>i) return error; //第i个元素不存在 e=p->data; //取第i个元素 return OK; } // GetElem_L 如果要在上面实现更多的操作,可以在里面直接添加。 
|