草庐IT

RECURSION

全部标签

c++ - 为每个节点分配深度

我在这里阅读了其他几篇看起来相似的文章,但没有完全回答我的问题。我得到了一个分配问题,为二叉树中的每个节点分配其各自的深度。我就是不太明白。作为引用,这是我的代码:structtreeNode{intitem;intdepth;treeNode*left;treeNode*right;};typedeftreeNode*Tree;intassignDepth(Tree&T,intdepth){if(T!=NULL){depth=assignDepth(T->left,depth++);T->depth=depth;depth=assignDepth(T->right,depth++);

c++ - 递归模板定义

我有一个递归模板定义(我刚刚编造了那个术语)。我认为代码可以更好地解释它。templateclassDomain{public:Xbegin;Xend;Domain(X_begin,X_end):begin(_begin),end(_end){//...}boolContains(constX&t)const{//...}};templateclassIFunction{public:DomainmyDomain;public:IFunction(constDomain&dom):myDomain(dom){}virtualYCalc(constX&IV)const=0;virtual

C++ 我需要编写一个将十六进制转换为十进制并使用递归的函数,但我不断收到运行时错误

这是一个类,所以它必须使用递归,我已经迭代地编写了一个工作代码,但我无法让它在递归中工作,我真的迷路了。我已经为此工作了一个星期。任何指导或建议都会非常有帮助。这是我的函数,我需要将十六进制作为字符指针并输出它对应的十进制。我经常遇到堆栈溢出或内存分配运行时错误,任何人都可以找出问题所在并引导我朝着正确的方向前进吗?inthexToDecimal(constchar*hex,intoffset,intpower){if(offset>=0){hexChar=*(hex+offset);if(isalpha(hexChar)){hexChar=toupper(hexChar);hexNu

c++ - 不可预测的嵌套循环数量

我正在尝试制作一个需要嵌套循环才能正常工作的程序。但是嵌套循环的数量取决于用户输入的字符数以及要输出的字符数。到目前为止,这是我的代码。#includeusingnamespacestd;intmain(){stringstr;cout>str;//fortwocharactersfor(inti=0;i那么,有什么办法可以解决这个问题。 最佳答案 你需要动态地做:std::vectoroffsets(s.size());boolisContinue;do{for(autooffset:offsets){std::cout背后的想法

c++ - 如何在深度优先搜索的递归实现中返回 bool 值?

我想写一个函数来检查两个二叉树是否相同。代码如下:boolcheckSame(Node*first,Node*second){//Checkifnodesarethesame//Checkleftnodes:checkSame(first->left,second->left)//Checkrightnodes:checkSame(first->right,second->right)}问题是我不确定在这里返回什么。我发现的所有DFS实现都有一个void返回值。有没有返回bool值的地方?此外,我正在寻找递归解决方案,而不是迭代解决方案。 最佳答案

c++ - 元整数平方根中的无限递归

你好,我的一位friend询问如何将整数平方根函数转换为元函数。这是原始函数:unsignedisqrt(unsignedvalue){unsignedsq=1,dlt=3;while(sq>1)-1;}我用constexpr写了一个meta版本,但是他说因为某些原因他不能使用这个新特性:constexprstd::size_tisqrt_impl(std::size_tsq,std::size_tdlt,std::size_tvalue){returnsq>1)-1;}constexprstd::size_tisqrt(std::size_tvalue){returnisqrt_im

c++ - 类自身类型的静态类成员

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Dostaticmembersofaclassoccupymemoryifnoobjectofthatclassiscreated?MemoryAllocationofStaticMembersinaClass“一个类在其类主体完成之前不会被视为已定义,一个类不能有自己类型的数据成员。一个类可以有数据成员,这些数据成员是指向自己类型的指针/引用。”C++入门(LippmanLajoie)有道理。但为什么允许这样做呢?classjustAClass{public:justAClass();private:sta

C++:模板化继承递归类:不可能的三重威胁?

因此,假设您有一个递归的基类(例如链表)和一个派生类。派生类应该重用基类的构造函数,因为你不想写冗余代码。您可以尝试显而易见的事情,但它不会起作用:classBase{public:Base(intsize){if(sizeprint();}}protected:Base*next;};classDerived:publicBase{public:Derived(intsize):Base(size){}voidprint(){coutprint();}}};intmain(){Derivedd2(5);d2.print();cout这行不通-当您实例化Derived时,它会构造一个D

c++ - 快速排序代码解释

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭9年前。这是我在实现快速排序算法时遇到的代码。你能在这里解释一下递归是如何工作的吗?voidquickSort(intarr[],intleft,intright){inti=left,j=right;inttmp;intpivot=arr[(left+right)/2];/*partition*/while(ipivot)j--;if(i请注意,这不是家庭作业。

java - 在递归中使用 += 在 Java 和 C++ 中产生不同的结果

下面的非常简单的Java代码有奇怪的输出,但是C和C++中相同逻辑的代码有正确的输出。我尝试使用JDK1.7和JDK1.3(相对JRE),奇怪的输出总是存在。publicclassTest{publicstaticintsum=0;publicstaticintfun(intn){if(n==1)return1;elsesum+=fun(n-1);//thisstatementleadstoweirdoutput//{//thefollowingblockhasrightoutput//inttmp=fun(n-1);//sum+=tmp;//}returnsum;}publicsta