习题2-14:试写一算法在带头结点的单链表结构上实现线性表操作LENGTH(L)。 示例: 输入:1->3->6->4->7 输出:5
时间: 2024-12-11 16:17:50 浏览: 7
要编写一个在带头节点的单链表上实现线性表操作LENGTH(L)的算法,我们可以通过遍历链表来计算其长度。由于带头节点的存在,我们需要从第二个节点开始计数。
这里是一个Python实现该操作的算法:
```python
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
def LENGTH(head):
if head is None or head.next is None: # 处理特殊情况:空链表或只有一个元素
return 0
current = head.next # 起始位置设为第二个节点
length = 1 # 初始化长度为1(因为第一个节点)
while current.next is not head: # 遍历直到回到头部
length += 1
current = current.next
return length # 返回链表长度
# 示例:
head = Node(1)
head.next = Node(3)
head.next.next = Node(6)
head.next.next.next = Node(4)
head.next.next.next.next = Node(7)
length = LENGTH(head)
print(f"Length of the linked list: {length}") # 输出:5
```
阅读全文