首页 技术 正文
技术 2022年11月15日
0 收藏 497 点赞 4,927 浏览 1295 个字

Reverse反转算法

 #include <iostream> using namespace std;
//交换的函数
void replaced(int &a,int &b){
int t = a;
a = b;
b = t;
}
//反转
void reversed(int a[],int length){
int left = ;
int right = length - ;
while (left < right) {
replaced(a[left], a[right]);
left++;
right--;
}
}
void output(int a[],int length)
{
for (int i = ; i<length; i++) {
cout << a[i] << " ";
}
}
int main()
{
int a[] = {,,,,,,,,};
output(a, );
cout << endl;
reversed(a, );
output(a, );
}

斐波那契数列

 #include <iostream> using namespace std; //斐波那契数列
int qiebona(int a)
{
//也可以用if语句
switch (a) {
case :
case :
return a;
break; default:
return qiebona(a-)+qiebona(a-);
break;
}
}
int main()
{
//验证斐波那契函数
cout << qiebona() << endl;
//然后打印前n个数的斐波那契数列
for (int i = ; i <= ; i++) {
cout << qiebona(i) << " ";
}
return ;
}

Reverse反转单链表算法

 #include <iostream> using namespace std;
//1首先这个数据节点中只有一个指针作为成员数据,所以这是一个单链表的节点结构
struct node{
int payload;
node* next;
};
//2对于一个长的单链表的操作,我们只能这个长链表的第一个节点或者说是第一个指针指向的节点开始操作
node* reversed(node* first){
//3如果链表为空或者只有一个,那就返回它自己呗
if (first->next == nullptr || first == nullptr) {
return first;
}//4如果有下一个实例,就
//5获取下一个实例
node* second = first -> next;
//这里就是递归,
node* new_head = reversed(second);
/*6 将下一个节点内部指针的方向反转,但是在反转之前,也要获取这下一个节点原来指向的下下个节点,也就是说,在这个操作之前,要在通过下一个节点获取下下一个节点.
假设在前一步加:node* third = second->next;但是这个简单的思路有局限性,当链表很长的时候,后面会重复这个获取下一个节点的过程,这样肯定是不明智的,因为链表的个数不确定,你就不知道要写多少代码,所以最好的办法就是通过递归重复执行前面相同的步骤(即算法)*/
second -> next = first;
first -> next = nullptr;
return new_head;//7由于递归的特性,最后的return返回值会往前传递到最前面
}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,945
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,471
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,284
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,100
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,732
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,767