C++题目两道!~在线跪求~~

来源:百度知道 编辑:UC知道 时间:2024/05/18 01:01:06
1.分别写出下列函数的递归算法和非递归算法,并求出n=10时的函数值。
Fib(n)= n 当n=0或n=1
Fib(n-2)+Fib(n-1) 当n2
2. 假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点而不设头指针,试编写相应的队列初始化、入队列、出队列和判断队列状态的算法。
利用上述算法完成下面的各操作,并在每一操作后输出队列状态。
1)下列元素逐一入队:5,7,3,8,55 状态:5个元素
2) 3个元素出队 状态:2个元素
3)再2个元素出队 状态:队空
4)再1个元素出队 状态:队空(指示下溢)

#include <iostream>
using namespace std;
int F1(int n);//递归
int F2(int n);//非递归

void main()
{
cout<<F1(5)<<" "<<F2(5)<<endl;
}

int F1(int n)
{
if(n==0||n==1)
return 1;
else
return F1(n-2)+ F1(n-1);
}

int F2(int n)
{
int i;
int a=0,b=1,c,t;
for(i=1;i<=n;i++)
{
c=a+b;
a=b;
b=c;
}
return c;
}

#include <iostream>
using namespace std;

struct node
{
int data;
node *next;
};

class LB
{
private:
node *tail;
public:
LB()
{
node *c=new node;
c->next=c;//代表为空
tail=c;
}

void insert(int n)
{
node *c=new node;
c->data=n;//赋值
c->next=tail->next;
tail->next=c;
tail=c;////原来的尾部指向新的尾部
}