L->data>=max?L->data:max;
时间: 2024-05-16 22:18:19 浏览: 14
这段代码是一个简单的三目运算符,也称为条件运算符。它的作用是比较L节点的数据值和max的值,如果L的数据值大于或等于max,就返回L的数据值;否则返回max的值。
可以理解为以下if-else语句的简写形式:
```
if(L->data >= max)
return L->data;
else
return max;
```
相关问题
LinkList MaxP( LinkList L){ if(L==NULL||L->next==NULL)return NULL; else{ LinkList p; LinkList MAX; p=L->next; MAX=p; while(p){ if(p->data>MAX->data){ MAX=p; } p=p->next; } return MAX; } }请将里面的create函数完善
好的,这里是完整的代码示例,包括 `create` 函数的实现:
```c++
#include <iostream>
using namespace std;
struct ListNode {
int data;
ListNode* next;
ListNode(int x) : data(x), next(NULL) {}
};
typedef ListNode* LinkList;
LinkList create() {
int n;
cin >> n;
LinkList head = NULL, tail = NULL;
for (int i = 0; i < n; i++) {
int x;
cin >> x;
ListNode* node = new ListNode(x);
if (head == NULL) {
head = node;
tail = node;
} else {
tail->next = node;
tail = node;
}
}
return head;
}
LinkList MaxP(LinkList L) {
if (L == NULL || L->next == NULL) return NULL;
else {
LinkList p = L->next;
LinkList MAX = p;
while (p) {
if (p->data > MAX->data) {
MAX = p;
}
p = p->next;
}
return MAX;
}
}
int main() {
LinkList L = create();
LinkList max_node = MaxP(L);
if (max_node == NULL) {
cout << "No answer!" << endl;
} else {
cout << max_node->data << endl;
}
return 0;
}
```
`create` 函数中,我们先输入一个整数 `n` 表示链表节点数,然后依次输入每个节点的值,并将其插入链表尾部。函数返回链表的头指针 `head`。
`MaxP` 函数中,我们遍历整个链表,找到最大值所在的节点,并返回该节点的指针。如果链表为空或只有一个节点,则直接返回 `NULL`。
最后在 `main` 函数中,我们调用 `create` 函数创建链表,然后调用 `MaxP` 函数找到最大值所在的节点,并输出其值。如果链表为空,则输出 "No answer!"。
#include <stdio.h> #include <stdlib.h> typedef int ElemType; typedef struct LNode { ElemType data; struct LNode *next; }LNode,*LinkList; LinkList Create(); LinkList MaxP( LinkList L); int main() { LinkList L,p; ElemType e; L = Create(); p = MaxP(L); if(p) printf("%d\n", p->data); else printf("NULL"); return 0; } LinkList MaxP( LinkList L){ if(L==NULL||L->next==NULL)return NULL; else{ LinkList p; LinkList MAX; p=L->next; MAX=p; while(p){ if(p->data>MAX->data){ MAX=p; } p=p->next; } return MAX; } }请完善这个代码
好的,这个代码中存在一些问题,我来完善一下:
```
#include <stdio.h>
#include <stdlib.h>
typedef int ElemType;
typedef struct LNode {
ElemType data;
struct LNode* next;
} LNode, *LinkList;
LinkList Create();
LinkList MaxP(LinkList L);
int main() {
LinkList L, p;
ElemType e;
L = Create();
p = MaxP(L);
if (p)
printf("%d\n", p->data);
else
printf("NULL");
return 0;
}
LinkList Create() {
LinkList L, p, r;
L = (LinkList)malloc(sizeof(LNode));
L->next = NULL;
r = L;
ElemType e;
scanf("%d", &e);
while (e != -1) {
p = (LinkList)malloc(sizeof(LNode));
p->data = e;
r->next = p;
r = p;
scanf("%d", &e);
}
r->next = NULL;
return L;
}
LinkList MaxP(LinkList L) {
if (L == NULL || L->next == NULL)
return NULL;
else {
LinkList p;
LinkList MAX;
p = L->next;
MAX = p;
while (p) {
if (p->data > MAX->data) {
MAX = p;
}
p = p->next;
}
return MAX;
}
}
```
这里我添加了链表的创建函数Create(),并且在链表的尾部添加了一个-1作为结束标志。同时我还修正了一些细节问题,现在这个代码应该可以正常运行了。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)