永发信息网

救命啊。。。编程高手们

答案:1  悬赏:0  手机版
解决时间 2021-07-25 10:36
  • 提问者网友:谁的错
  • 2021-07-24 16:49

4、已知head是带头结点的单链表的头指针,编写递归算法的程序,实现逆序输出表中个元素的值。假设,结点中的数据为整数。

5、已知非空线性链表head,编写程序,将链表中数据域值最小的那个结点移至表的最前面。要求:不得额外申请新的结点。

6、已知一个带头结点的单链表head,假设结点中的元素为整数,编写程序,按递增次序输出单链表中各结点的数据元素,并释放结点所占的存储空间。

7、已知head为无头结点单链表的头指针,假设链表中存储的都是整型数据,编写含递归算法的程序实现下面的问题:

a、求单链表中的最大整数

b、求单链表中结点个数

c、求所有证书的平均值

8、设有两个栈S1,S2都采用顺序栈方式,并且共享一个存储区[0……MAXSIZE-1],为了尽量利用空间,减少溢出的可能,可采用栈顶相向、迎面增长的存储方式,编写程序实现S1,S2有关入栈和出栈的操作。

9、无穷数列{1,1,2,3,5,8,13,21,……},编写程序实现该数列第N个元素的递归和非递归程序。

10、求两个正整数m和n的最大公约数可以用如下gcd(m,n)表示:

m,n=0

gcd(m,n)=

gcd(n,m%n),n>0

a、 编写一个计算gcd(m,n)的递归过程。

b、 将上述过程转化成非递归的过程。

c、 画出计算gcd(28,36)的过程及栈的状态变化,给出计算结果。

11、假设表达式由单字母变量和双目四则运算算符构成。编写程序,将一个书写正确的表达式(中序表达式)转换成逆波兰表达式(后序表达式)。

12、编写计算链队列Q中结点的个数。

最佳答案
  • 五星知识达人网友:一把行者刀
  • 2021-07-24 17:32

第9题:


int f(n)


{


if(n<=1)


return 1;


else


return f(n-1)+f(n-2);


}


非递归:


Int f(int n)


{


int a=1,b=1,c;


if(n<=2)


return 1;


else


{


c=b+a;


a=b;


b=c;


for(i=3;i<n;i++)


{


c=b+a;


a=b;


b=c;


}


return c;


}


}


10.a.题:


int rgcd(int v1,int v2)


{


if(v2!=0)


return rgcd(v2,v1%v2);


return v1;


}


第b问.:


int gcd(int v1,int v2)


{


int temp;


temp=v2;


while(temp!=0)


{


temp=v1%v2;


v1=v2;


v2=temp;


}


return v2;


}

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯