python在单链表的结点中包含两个域:entry和next,写一算法,在带头结点的单链表中查找元素item,返回该元素所在的位序。
时间: 2023-05-30 20:05:20 浏览: 125
以下是Python代码实现:
```python
def search(head, item):
p = head.next
i = 1
while p != None:
if p.entry == item:
return i
p = p.next
i += 1
return -1 # 如果没有找到,返回-1
```
其中head为带头结点的单链表头结点,item为待查找的元素。算法通过遍历单链表,逐个比较结点中的entry域,找到与item相等的结点即返回该结点的位序。如果遍历完整个链表都没有找到,则返回-1表示未找到。
相关问题
运用python在单链表的结点中包含两个域:entry和next,写一算法,在带头结点的单链表中查找元素item,返回该元素所在的位序。
以下是一个可能的实现:
```python
def find_pos(head, item):
"""
在带头结点的单链表中查找元素item,返回该元素所在的位序。
如果找不到,返回-1。
"""
pos = 0
curr = head.next
while curr is not None:
pos += 1
if curr.entry == item:
return pos
curr = curr.next
return -1
```
其中,head是带头结点的单链表的头结点,item是要查找的元素。实现中,先将pos初始化为0,curr初始化为头结点的下一个结点。然后循环遍历链表,每次将pos加1,如果当前结点的entry域等于item,就返回pos。如果循环结束后仍然没有找到item,就返回-1。
用Python实现 在单链表的结点中包含两个域:entry和next,写一算法,在带头结点的单链表中查找元素item,返回该元素所在的位序。
以下是Python实现:
```python
def find_position(head, item):
"""
在带头结点的单链表中查找元素item,返回该元素所在的位序。
"""
pos = 0
p = head.next
while p is not None:
pos += 1
if p.entry == item:
return pos
p = p.next
return -1 # 如果没有找到,返回-1
```
其中,head为带头结点的单链表的头结点,item为待查找的元素。该算法使用了一个变量pos记录当前结点的位序,初始值为0。然后从头结点的下一个结点开始遍历单链表,每遍历一个结点,就将pos加1。如果找到了目标元素,就返回它的位序;如果遍历完整个单链表还没有找到目标元素,就返回-1表示没有找到。
阅读全文