用python写出,在单链表的结点中包含两个域:entry和next,写一算法,在带头结点的单链表中查找元素item,返回该元素所在的位序。
时间: 2023-06-01 22:01:28 浏览: 50
以下是Python代码:
```python
class Node:
def __init__(self, entry=None, next=None):
self.entry = entry
self.next = next
def find_index(head, item):
current = head.next
index = 1
while current is not None:
if current.entry == item:
return index
current = current.next
index += 1
return -1
```
解析:
首先定义了一个Node类,其中包含entry和next两个域。entry表示该结点存储的元素,next表示指向下一个结点的指针。然后定义了一个find_index函数,该函数接受一个带头结点的单链表的头结点head和要查找的元素item,返回该元素在链表中的位序。在函数中,首先定义了一个current指针,指向链表的第一个结点,同时定义一个index变量,表示当前指针所指向的结点的位序。然后进入循环,判断当前结点的entry是否等于item,如果是,则返回index;否则将指针指向下一个结点,并将index加1。如果循环结束后还没有找到该元素,则返回-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表示没有找到。
python在单链表的结点中包含两个域:entry和next,写一算法,在带头结点的单链表中查找元素item,返回该元素所在的位序。
以下是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表示未找到。