试编写在带头结点的动态单链表上实现线性表操作length(l)的算法,并将长度写入头结点的数据域中。
时间: 2023-04-27 21:05:45 浏览: 311
3-2 试编写一个算法,在带表头结点的单链表中寻找第i个结点.doc
在带头结点的动态单链表上实现线性表操作length(l)的算法,可以通过遍历链表来统计节点数量,最后将结果存储在头结点的数据域中。
具体实现步骤如下:
1. 定义一个计数器count,初始值为。
2. 从头结点的下一个节点开始遍历链表,每遇到一个节点,就将计数器加1。
3. 遍历完整个链表后,将计数器的值存储在头结点的数据域中。
4. 返回计数器的值,即为链表的长度。
代码实现如下:
```
int length(LinkList L) {
int count = ;
LNode *p = L->next;
while (p != NULL) {
count++;
p = p->next;
}
L->data = count;
return count;
}
```
其中,L为带头结点的动态单链表,LNode为链表节点的结构体。
阅读全文