《2022年2022年华为题 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年华为题 .pdf(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1.非递归实现斐波那契数列数列. 利用栈的操作来实现#include stdio.h #include string.h #include stdlib.h #define ElemType int #define STACK_INIT_SIZE 100 #define STACKINITSIZE 10 typedefstruct ElemType *top; ElemType *base; int stack_init_size; sqStack; void InitStack(sqStack *s) s-base=(ElemType *)malloc(STACK_INIT_SIZE*siz
2、eof (ElemType); if (!s-base) exit(0); s-top=s-base; s-stack_init_size=STACK_INIT_SIZE; void Push(sqStack *s,ElemType e) if (s-top-s-base=s-stack_init_size) s-base=(ElemType *)realloc(s-base,(s-stack_init_size+STACKINITSIZE)*sizeof (ElemType); if (!s-base) exit(0); s-top=s-base+s-stack_init_size; s-s
3、tack_init_size=s-stack_init_size+STACKINITSIZE; *(s-top)=e; s-top+; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 3 页 - - - - - - - - - void Pop(sqStack *s,ElemType *e,ElemType *c) if (s-top=s-base) return ; *e=*-(s-top); *c=*-(s-top); (s-top)+=2; void Popp(sq
4、Stack *s,ElemType *e) if (s-top=s-base) return ; *e=*-(s-top); int Len(sqStack s) return (s.top-s.base); void Fibonacci(sqStack *s,int n) int i; int *r=NULL; int *t=NULL; int*m=NULL; r=( int *)malloc(sizeof ( int ); t=( int *)malloc(sizeof ( int ); m=(int *)malloc(sizeof ( int ); for (i=0;in;i+) if
5、(i=0|i=1) Push(s,1); else Pop(s,r,t); *m=*r+*t; Push(s,*m); void main() int n,k,i; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 3 页 - - - - - - - - - ElemType e; sqStack s; sqStack s1; InitStack(&s); InitStack(&s1); printf(input the length of Fibonaccin); scanf( %d,&n); Fibonacci(&s,n); printf(the Fibonacci is:); k=Len(s); for (i=0;ik;i+) Popp(&s,&e); Push(&s1,e); for (i=0;ik;i+) Popp(&s1,&e); printf(%d ,e); printf(n ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 3 页 - - - - - - - - -