数据结构--递归练习
来源:互联网 发布:淘宝幸福狐狸是正品吗 编辑:程序博客网 时间:2024/06/03 15:49
///////////////////////////////////////递归练习//////////////////////////////////////#include<iostream>using namespace std;//求前N个自然数之和int Sum(int N){if(N == 1)return 1;return Sum(N-1)+N;}//求N的阶乘int Fac(int N){if(N == 0)return 1;return Fac(N-1)*N;}typedef struct Node{Node(int data):_data(data),_next(NULL){}int _data;struct Node* _next;}Node;//逆序打印单链表void PrintFromTail2Head(Node* pHead){if(pHead){PrintFromTail2Head(pHead->_next);cout<<pHead->_data<<" ";}}//逆序销毁单链表void Destroy(Node*& pHead){if(pHead){Destroy(pHead->_next);delete pHead;pHead = NULL;}}//在单链表中逆序查找某个值为data的结点Node* FindFromTail(Node* pHead, size_t data){if(pHead){if(pHead->_data == data)return pHead;return FindFromTail(pHead->_next, data);}return NULL;}//二分查找递归形式int BinarySeach(int arr[], int left, int right, int key){int mid = left + (right - left);if(left < right){if(arr[mid] == key)return arr[mid];else if(arr[mid] > key)return BinarySeach(arr, left, mid-1, key);elsereturn BinarySeach(arr, mid+1, right, key);}return -1;}//逆序打印数组中的元素void PrintFromTail(int arr[], int size){if(size){cout<<arr[size-1]<<" ";PrintFromTail(arr, size-1);}}//判断一个字符串是否为回文bool IsPalindrome(char* str, size_t size){if(size <= 1)//递归出口 当只有一个字符退出return true;if(str[0] != str[size-1])//或当前字符串中第一个和最后一个不等就退出return false;/*return */IsPalindrome(++str, size-2);//递归}int main(){/*char* str = "12321";int size = strlen(str);cout<<IsPalindrome(str, size)<<endl;*///int arr[] = {1,2,3,4,5,6,7,8,9};//cout<<BinarySeach(arr, 0, 4, 3)<<endl;//int size = sizeof(arr)/sizeof(arr[0]);//PrintFromTail(arr, size);/*Node* p;Node* p1 = new Node(1);Node* p2 = new Node(2);Node* p3 = new Node(3);Node* p4 = new Node(4);p1->_next = p2;p2->_next = p3;p3->_next = p4;p = FindFromTail(p1,3);*///Destroy(p1);//PrintFromTail2Head(p1);//cout<<endl; //cout<<Sum(5)<<endl;//cout<<Fac(3)<<endl;system("pause");return 0;}
0 0
- 数据结构--递归练习
- 数据结构与算法练习-递归
- C++数据结构实验02--递归练习-
- 数据结构与算法练习-回溯、递归
- 数据结构—二叉树练习—递归
- 回顾大学--大二数据结构实验--实验一 递归练习
- 数据结构之递归小练习(定义,阶乘,求和,汉诺塔)
- 递归练习
- 递归练习
- 递归 练习
- 递归练习
- 递归练习
- 递归练习
- 递归练习
- 递归练习
- 递归练习
- 递归练习
- 数据结构---递归
- Java基础整理(三)
- 单链表堆栈测验括号匹配
- SQL基本语句增删改查
- avl树-《算法导论》学习笔记十三
- HDU3986
- 数据结构--递归练习
- python 七牛的直播实时截图
- Android学习笔记
- 学习总结 求某年某月某日之后第N天日期的解法
- 动态内存知识总结
- ECMAScript 6 入门笔记(七)Symbol,set和map
- 我眼中的权限系统
- 【Boolan】C++面向对象编程培训第一周笔记
- js容易被忽略的内容(一)