递归形式: int g(int n); int f(int n) { if(n <= 1) return 1; return f(n - 1) + g(n - 2); } int g(int n) { if(n <= 1) return 1; return f(n + 1) + g(n - 1); } 非递归形式: 使用一个栈stk来模拟c语言中函数的递归调用。 程序可以理解为一个状态机,状态的转移...
} }/*Function:翻转链表(非递归) reverse_linkedList *param:node** phead //参数意义:保存链表指针变量的地址 *return: void * *知识点:node** p;p代表链表指针变量的地址。*p才是链表。**p 代表结点(可以认为"*"具有解析功能) *整体的思路:重整结点的关系,原来从左指向右,翻转后从右指向左;原来指向头...
char *reverse(char *str) if( !str ) return NULL; int len = strlen(str); if( len > 1 ) char ctemp =str0; str0 = strlen-1; strlen-1 = '/0';// 最后一个字符在下次递归时不再处理 reverse(str+1); // 递归调用 strlen-1 = ctemp; return str; // 非递归实现字符串反转 char *...
returnc; } voidf(intsum,intc,char*p,inti)/*此函数用来确定转换后的数字的各个位数上的数*/ {intj,n; for(n=i;n>=0;n--) for(j=0;j<c;j++) if(sum<(pow1(c,n)*(j+1))&&sum>=(pow1(c,n)*j)){*(p+i-n)=j,sum=sum-pow1(c,n)*j;break;} *(p+i+1)=0; } intw(...
reverse(str+1); // 递归调用 str[len-1] = ctemp; } return str; } // 非递归实现字符串反转 char *reverse(char *str) { if( !str ) { return NULL; } int len = strlen(str); char temp; for( int i = 0; i < len / 2; i++ ) ...