20. 填空题 下面的算法是通过一趟遍历在单链表中确定值最大的结点。 请在空格处填上对应的代码。 ElemType Max (LinkList L ){ if(L->next==NULL) return NULL; pmax=L->next; //假定第一个结点中数据具有最大值 p=L->next->next; while(p !=第1个空格 ){//如果下一个结点存在 if(p->data第2个空格 > pmax->data) pmax=第3个空格 ;//如果p的值大于pmax的值,则重新赋值 p=第4个空格;//遍历链表 } return 第5个空格 ->data; }
时间: 2023-05-12 09:04:22 浏览: 56
ElemType Max (LinkList L ){
if(L->next==NULL) return NULL;
pmax=L->next; //假定第一个结点中数据具有最大值
p=L->next->next;
while(p !=NULL){//如果下一个结点存在
if(p->data > pmax->data)
pmax=p;//如果p的值大于pmax的值,则重新赋值
p=p->next;//遍历链表
}
return pmax->data;
}
相关问题
. 下面程序的作用是定义一个冒泡排序的函数模板,并在主函数中调用,请按题目要求填空。(6分)
```cpp
#include<iostream>
using namespace std;
template<typename T>
void bubbleSort(T arr[],int len){
for(int i=0;i<len-1;++i){
for(int j=0;j<len-i-1;++j){
if(arr[j]>arr[j+1]){
T temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
int main(){
int arr1[]={1,3,2,5,4};
double arr2[]={2.5,1.2,3.7,0.8,4.1};
bubbleSort<int>(arr1,5);
bubbleSort<double>(arr2,5);
for(int i=0;i<5;++i){
cout<<arr1[i]<<" ";
}
cout<<endl;
for(int i=0;i<5;++i){
cout<<arr2[i]<<" ";
}
cout<<endl;
return 0;
}
```
填空:
```cpp
template<typename T>
void bubbleSort(T arr[],int len){
for(int i=0;i<len-1;++i){
for(int j=0;j<len-i-1;++j){
if(arr[j]>arr[j+1]){
T temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
```
以下程序是通过调用函数findmax,找出数组中的最大值。 请填空,实现程序的查找功能。
### 回答1:
程序如下:
```c++
#include <iostream>
using namespace std;
int findmax(int arr[], int len) {
int max = arr[];
for (int i = 1; i < len; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
int main() {
int arr[] = {1, 3, 5, 7, 9};
int len = sizeof(arr) / sizeof(arr[]);
int max = findmax(arr, len);
cout << "数组中的最大值为:" << max << endl;
return ;
}
```
在上面的程序中,我们定义了一个函数findmax,用于查找数组中的最大值。该函数接受两个参数,一个是数组arr,另一个是数组的长度len。在函数中,我们使用一个for循环遍历数组,依次比较每个元素的大小,找出最大值并返回。
在主函数中,我们定义了一个数组arr,并通过sizeof运算符计算出数组的长度len。然后调用findmax函数,将数组和长度作为参数传递进去,得到最大值并输出。
### 回答2:
这里给出完整的代码,以便更好地理解程序的运行流程。
```
#include <stdio.h>
int findmax(int a[], int n) {
int max = a[0];
int i;
for (i = 1; i < n; i++) {
if (a[i] > max) {
max = a[i];
}
}
return max;
}
int main() {
int a[] = {3, 6, 2, 7, 1};
int max = findmax(a, 5);
printf("The maximum number is %d.\n", max);
return 0;
}
```
这个程序的目的是找出数组a中的最大值。为了实现这个目的,程序定义了一个函数findmax。这个函数需要两个参数:一个数组a和数组元素的数量n。
在函数中,程序首先将max变量初始化为数组中的第一个元素a[0]。然后,程序通过一个for循环遍历数组a,依次比较每个元素和当前的最大值max的大小。如果当前元素a[i]大于max,则将max更新为当前元素a[i]。最后,函数返回max值。
在主函数中,程序定义了一个数组a,并且调用findmax函数来求出数组a中的最大值。将这个最大值赋值给变量max,并且打印出结果到控制台。
如果需要实现其他的查找功能,例如查找最小值、查找某个元素是否存在等等,都可以通过类似的方式实现。只需要在函数体中修改相应的逻辑即可。
### 回答3:
以下程序是通过调用函数findmax,找出数组中的最大值。具体实现方法如下:
```c++
#include <iostream>
using namespace std;
int findmax(int a[], int n) {
int max = a[0];
for (int i = 1; i < n; i++) {
if (a[i] > max) {
max = a[i];
}
}
return max;
}
int main() {
int arr[] = {1, 4, 3, 6, 2, 9, 5, 8, 7};
int n = sizeof(arr) / sizeof(int);
int result = findmax(arr, n);
cout << result << endl;
return 0;
}
```
在主函数中,首先定义了一个整型数组arr,数组中包含了一些整数。根据数组的长度计算出数组的元素个数。然后,调用函数findmax,并将数组和元素个数传递给函数。函数中利用for循环遍历数组,依次比较每个元素和当前最大值,如果当前元素大于最大值,则将最大值更新为当前元素。最后,函数返回最大值,并在主函数中打印输出结果。
因此,通过以上程序可以实现查找数组中的最大值功能。其中,关键在于设计函数的实现方法,通过循环遍历数组中的每个元素,依次比较求出最大值,从而实现查找功能。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)