2.查找
1)按序号查找
在单链表中,由于每个结点的存储位置都放在其前一结点的next域中,因而即使知道被访问结点的序号i,也不能像顺序表那样直接按序号i访问一维数组中的相应元素,实现随机存取,而只能从链表的头指针出发,顺链域next诸葛结点往下搜索,直至搜索到第i个结点为止。
算法描述:设带头结点的单链表的长度为n,要查找表中第i个结点,则需要从单链表的头指针L出发,从头结点(L->next)开始顺着链表扫描,用指针p指向当前扫描到的结点,初值指向头结点,用j左计数器,累计当前扫描过的结点数(初值为0),当j=i时,指针平所致俄结点就是要找的第i个结点。
Node *Get(LinkList L,int i)
/*在带头结点的单链表L中查找第i个结点,若找到(1≤i≤n),则返回该结点的存储位置;*/
/*否则追回NULL*/
{
int;
Node *p;
p=L;j=0;/*从头文件开始扫描*/
while(p->next!=NULL&&j<i)
{
p=p->next;/*扫描下一结点*/
j++;/*已扫描结点计数器*/
}
if(i==j)
|