编写一算法在带头结点的单链表结构上实现求线性表的长度
时间: 2023-04-21 14:02:01 浏览: 90
算法步骤如下:
1. 定义一个计数器变量count,初始值为0。
2. 从头结点开始遍历单链表,每遇到一个结点就将计数器count加1。
3. 遍历完整个单链表后,count的值就是线性表的长度。
4. 返回count的值作为结果。
代码实现如下:
int getLength(Node* head) {
int count = 0;
Node* p = head->next;
while (p != NULL) {
count++;
p = p->next;
}
return count;
}
其中,head是带头结点的单链表的头结点,Node是单链表结点的定义。
相关问题
试写一算法在带头结点的单链表结构上实现线性表操作length(l)。
算法如下:
1. 初始化计数器count为0,指针p指向头结点的下一个节点。
2. 当p不为空时,执行以下操作:
a. count加1。
b. 将p指向下一个节点。
3. 返回count作为链表的长度。
该算法遍历整个链表,每经过一个节点就将计数器加1,最终返回计数器的值作为链表的长度。
试写一算法在带头结点的单链表结构上实现线性表操作Length(L)。
可以使用遍历链表的方式,从头结点开始,依次遍历每个节点,每遍历一个节点,计数器加1,直到遍历到链表的末尾节点,最后返回计数器的值即可。具体实现可以参考以下代码:
int Length(LinkList L)
{
int len = 0;
LNode *p = L->next; // 从第一个节点开始遍历
while (p != NULL)
{
len++;
p = p->next;
}
return len;
}