输人若干个正整数(输入-1 为结束标志),并建立个单向链表,将其中的偶数值结点删除后输出。试编写相应程序。
时间: 2023-05-01 16:04:55 浏览: 199
编写程序实现以下功能:从键盘输入十个整数,用冒泡法排序后按从小到大输出
题目描述:输入一个整数(输入-1为结束标志),并建立一个单向链表,将其中的偶数值结点删除后输出。
这道题目要求实现一个简单的单向链表的操作,可以通过创建一个类来实现。
首先,我们创建一个Node类,表示单向链表的每个节点,包含两个属性:value和next,分别表示该节点的值和指向下一个节点的指针。同时,该类还需要包含一个删除偶数值节点的方法。
在删除偶数节点的方法中,我们可以通过一个while循环遍历整个链表,依次判断每个节点的值是否为偶数,如果是则将该节点从链表中删除。最后,我们将链表中剩余节点的值输出即可。
代码实现如下:
```
class Node:
def __init__(self, value):
self.value = value
self.next = None
def remove_even(self):
while self.next:
if self.next.value % 2 == 0:
self.next = self.next.next
else:
self = self.next
def print_list(self):
while self:
print(self.value, end=' ')
self = self.next
print()
if __name__ == '__main__':
head = Node(None)
current = head
while True:
num = int(input("请输入一个整数:"))
if num == -1:
break
new_node = Node(num)
current.next = new_node
current = new_node
head.remove_even()
head.print_list()
```
调用该程序后,我们可以输入一系列整数,程序会自动创建单向链表,并删除其中的偶数节点,最终将剩余节点的值输出。
阅读全文