编写程序,输入n个整数链式存放并输出最大值。
时间: 2023-06-24 11:04:13 浏览: 87
以下是一个Python的实现:
```python
class Node:
def __init__(self, val):
self.val = val
self.next = None
def find_max(head):
if not head:
return None
max_val = head.val
node = head
while node:
if node.val > max_val:
max_val = node.val
node = node.next
return max_val
# 示例
head = Node(1)
head.next = Node(3)
head.next.next = Node(5)
head.next.next.next = Node(2)
print(find_max(head)) # 输出5
```
首先定义了一个链表节点类 `Node`,包含一个整数值 `val` 和一个指向下一个节点的指针 `next`。然后定义了函数 `find_max`,接受链表的头节点作为参数,遍历整个链表,找到最大值并返回。在遍历过程中,用一个变量 `max_val` 记录当前找到的最大值,初始值为头节点的值。每次遍历到一个节点时,如果它的值比 `max_val` 大,就更新 `max_val`。最后返回 `max_val` 即可。
相关问题
编写程序输入n个整数链式存放并输出最大值
以下是一个用 C 语言实现的示例代码:
```
#include <stdio.h>
#include <stdlib.h>
struct node {
int data;
struct node *next;
};
int main() {
int n, max = 0;
struct node *head, *tail, *p;
head = tail = (struct node*)malloc(sizeof(struct node));
scanf("%d", &n);
for (int i = 0; i < n; i++) {
p = (struct node*)malloc(sizeof(struct node));
scanf("%d", &p->data);
tail->next = p;
tail = p;
}
tail->next = NULL;
p = head->next;
while (p != NULL) {
if (p->data > max) {
max = p->data;
}
p = p->next;
}
printf("最大值: %d\n", max);
return 0;
}
```
这个代码实现了读入 n 个整数,并使用链式存储,最后输出最大值的功能。
第1关:编写程序输入n个整数链式存放并输出最大值
第1关的目标是让你编写一个简单的程序,用于接收用户输入的n个整数,并将它们存储在一个链表结构中。然后,你需要遍历这个链表找出其中的最大值并将其输出。
首先,你需要创建一个链表节点类,它包含一个整数值和指向下一个节点的指针。然后,你可以创建一个函数来添加新元素到链表中:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def add_number_to_list(n, num_list):
if not num_list or num_list.head is None:
num_list.head = ListNode(num)
else:
current = num_list.head
while current.next:
current = current.next
current.next = ListNode(num)
# 创建一个空链表实例
number_list = ListNode()
```
接着,让用户输入n个整数并依次添加到链表:
```python
def input_numbers_and_create_list():
n = int(input("请输入整数的数量:"))
for _ in range(n):
num = int(input(f"请输入第{i+1}个整数:"))
add_number_to_list(number_list, num)
input_numbers_and_create_list()
```
最后,你需要遍历链表找到最大值,可以使用迭代或递归的方式:
```python
def find_max_value(node):
if node is None or node.next is None:
return node.val
max_val = node.val
while node.next:
max_val = max(max_val, node.next.val)
node = node.next
return max_val
max_value = find_max_value(number_list.head)
print(f"链表中的最大值是:{max_value}")
```
阅读全文