int findLargest (ListNode *p)
// --------------------------------------------------------------------------
// Preconditions: list head pointer is passed as a parameter.
// Postconditions: returns the largest value in the linked list.
// --------------------------------------------------------------------------
{
if (p->item != NULL)
{
int largest = p->item;
if (largest > p->next->item)
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
是否可以编写这个递归函数只传递一个指针作为参数?如果不添加更多参数,我无法弄清楚如何做到这一点.有任何想法吗?我只使用顺序搜索.没有什么花哨.
以下是将要使用的类List的部分:
struct ListNode
{
ListItemType item; // A data item on the list.
ListNode *next; // Pointer to next node
}; // end ListNode
ListNode *head; // Pointer to linked list of items. …Run Code Online (Sandbox Code Playgroud) 比方说我宣布:
int [a][b][c];
Run Code Online (Sandbox Code Playgroud)
难道一个为水平/页立场,b行和Ç列?
还是可以什么,我想这是即一个代表列,b表示页,ç代表行(因为数据仅仅是数据立方体可以抽象任何方式)?
Sphere() : theRadius(1.0)
{
}
Run Code Online (Sandbox Code Playgroud)
为什么使用初始化程序(上面)编写的构造函数比初始化其主体(下面)中的数据成员的构造函数更好?
Sphere()
{
theRadius = 1.0;
}
Run Code Online (Sandbox Code Playgroud) 我知道FSM可以转换到下一个状态甚至转换到当前状态,即转换到自身的状态,但是状态转换到先前状态(状态C转换到状态B)是合法的吗?
下面是二进制搜索功能.
int search(int a[], int v, int left, int right)
{
while (right >= left)
{
int m = (left + right)/2;
if (v == a[m])
return m;
if (v < a[m])
right = m - 1;
else left = m + 1;
}
return -1;
}
Run Code Online (Sandbox Code Playgroud)
如何确定此函数的Big-O表示法?
这个搜索函数是否为O(n),因为while循环依赖于left的值?
class Board
{
public:
enum Player {X = -1, O, E};
bool win(Player P); // A function that returns true if Player P has won the game, and
// false otherwise.
}; // end class board
Run Code Online (Sandbox Code Playgroud)
以上是我的Tic-Tac-Toe游戏头文件的一部分.我正在尝试测试win函数,并对如何从驱动程序文件测试它感到困惑:
#include <iostream>
using namespace std;
#include "Board.h"
// function main begins program execution
int main ()
{
Board a;
cout << a.win(X) << endl; // <------------------? ? ?
return 0; // indicate successful termination
} // end function main
Run Code Online (Sandbox Code Playgroud)
我试图在main中创建一个Board :: Player类型,但仍然无法编译它.有什么建议?
在声明中"加权快速联合算法最多遵循lg N个指针以确定N个对象中的两个是否连接" lg代表什么?
如何:
(1 + 2 + ... + N)/ N =(N + 1)/ 2
要么
(1 + 2 + ... + N + N)/ N =(N + 3)/ 2
我的教科书说这是基础数学,但我忘记了找到答案的方法.
有一本100页的图画书.如果骰子随机滚动以选择其中一个页面并随后重新滚动以搜索书中的某个图片 - 如何确定此问题的最佳,最差和平均情况复杂度?
建议答案:
最好的情况:在第一个骰子卷上找到图片
最坏的情况:图片在第100个骰子卷上找到或图片不存在
平均情况:50个骰子卷后发现图片(= 100/2)
假设:最多一次搜索不正确的图片
c++ ×4
algorithm ×2
analysis ×1
arrays ×1
big-o ×1
enums ×1
linked-list ×1
recursion ×1
sequences ×1
visual-c++ ×1