下面是用递归算法求解链表的最大整数,强把程序补充完整。 int GetMax(LinkList p) {//递归求解链表的最大整数 if( 第一空 p->next) return p-> 第二空 ; else { int max=GetMax(p->next); return p->data>=max 第三空 p->data:max; } } 我的答案 : (1) p->data> (2) data (3) ?
时间: 2024-02-14 10:09:15 浏览: 26
你的答案是正确的!完整的程序如下:
```
int GetMax(LinkList p) {
//递归求解链表的最大整数
if(p->next == NULL)
return p->data;
else {
int max = GetMax(p->next);
return p->data > max ? p->data : max;
}
}
```
相关问题
在程序开始时用先序/中序/后序遍历的顺序建立二叉链表的递归算法
好的,这是一个经典的二叉树遍历问题。建立二叉链表的递归算法如下:
```c++
typedef struct BiTNode {
int data;
struct BiTNode *lchild, *rchild;
} BiTNode, *BiTree;
void createBiTree(BiTree &T) {
int ch;
cin >> ch;
if (ch == -1) {
T = NULL;
} else {
T = new BiTNode;
T->data = ch;
createBiTree(T->lchild);
createBiTree(T->rchild);
}
}
```
在这里,我们使用了先序遍历的方式来建立二叉树。输入 `-1` 表示该节点为空,否则将输入的值赋给该节点,并递归地建立左子树和右子树。
如果你需要用中序或后序遍历的方式来建立二叉树,可以稍微修改一下递归的顺序即可。
求链表中的最大整数,要求运用非递归算法
好的,这个问题属于计算机算法,我可以帮你回答。
对于求链表中的最大整数,我们可以遍历整个链表,依次比较每个节点中的值,找到最大整数。
具体方法是,先定义一个变量max,初始化为链表第一个节点中的值。然后从链表的第二个节点开始遍历,依次比较每个节点中的值和max,如果大于max,则更新max的值。最终遍历结束后,max就是链表中的最大整数。
这个算法是非递归的,因为它只需要使用循环和条件判断,不需要使用递归调用。