25计算机考研,数据结构知识点整理(内容借鉴了王道408+数据结构教材),还会不断完善所整理的内容,后续的内容也会不断更新(可以关注),若有错误和不足欢迎各位朋友指出!
一.单链表的长度计算
在顺序表中,线性表的长度是它的属性,数组定义时就已确定。在单链表中,整个链表由“头指针”表示,单链表在从头到尾遍历的过程中统计计数,得到的长度值未显式保存。
1.算法思想
采用“数”结点的方法求出带头结点单链表的长度,即从头开始“数”(p=L->next)用指针p依次指向各个结点,并附设计数器j计数,一直“数”到最后一个结点(p->next==NULL)从而得到单链表的长度。
2.算法描述
int ListLength(LinkList L)
/*求带头结点的单链表L的长度*/
{
Node *p;
p=L->next; //P指向第一个结点
j=0; /*用来存放单链表的长度*/
while(p!->NULL)
{
p=p->next;
j++;
}
return j; /*j为求得的单链表长度*/
} /*ListLength*/