- 单链表取值
单链表的取值不像顺序表那样可以随机访问任何一个元素,单链表只有头指针,各个结点的物理地址是不连续的,要想找到第i个结点,就必须从第一个结点开始按顺序往后数,一直数到第i个结点。
那么具体怎么做呢?
注意:链表的头指针不可以随意改动!一个链表是由头指针来标识的,一旦头指针改动或丢失,这个链表就不完整或找不到了。想想看,你拉着铁链子一头,另一端绑着水桶,到井里打水,你手一松,链子掉井里,找不到了。所以链表的头指针是不能随意改动的,如果需要用指针移动,可定义一个指针变量进行移动。
可以定义一个p 指针,指向第一个元素结点,用j作为计数器,j=1;
然后p指向p的下一个结点,即:
p=p->next; //p指向下一个结点
j++; //计数器j加1
直到p为空或者j=i停止,p为空说明没有数到i,链表就结束了,j=i说明找到了第i个结点。
bool GetElem_L(LinkList L, int i, int &e)//单链表的取值
{
//在带头结点的单链表L中查找第