




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1/*=*/*函数名称:2002_1.c */ /*程序目的:递归地将一个数插入一个准递增序列,且插入完毕后仍然保持准递增特性 */*Writen by Apechn ,Soft Lab of JLU */*=*/#include struct node /定义链表结点结构,在最前面给出int num;node* next;node* insert(node* head,int n)/题目要求的函数node *p;if (n num) /若n已经到了准递增序列的合适的位置,递归出口p = (node*)malloc(sizeof(node);/新建一个节点用来存放np-num = n;p-next = head;head = p;elseinsert(head-next,n);/否则递归插入return head;2002-1/*=*/*函数名称:2002_2.c */ /*函数目的:求给定序列的最长递增子序列的长度 */*Writen by Apechn,Soft Lab of JLU */*=*/#include const int N = 8;int MaxLeng(int a)int i,len = 1,lmax = 1;for (i = 1;i = ai-1) /如果满足递增子序列的定义,len增一len +;contnue;if (lamx len)lmax = len;len = 1;return lmax;2002-3/*=*/*函数名称:2004_3.c */ /*函数目的:用链表表示集合的相加 */*Writen by Apechn ,Soft Lab of JLU */*=*/#include struct node /定义链表结点结构,在最前面给出int num;node* next;int ismember(int a,node* head)/子函数,判断整数a是不是在以head为头结点的链表中int sign = 0; /如果在,返回1,否则返回0node* p = head;if (p = NULL) /注意集合为空集的情况return sign;while (p != NULL)if (p-num = a)sign = 1;break;p = p-next;return sign;node* SetAdd(node* P,node* Q)/题目要求的函数int n;node *r,*tail,*point1,*poing2;if (P = NULL)return Q;if (Q = NULL)return P;r = P;while (r != NULL) /tail用来记录P链表的尾部tail = r;r = r-next;r = Q;while (ismember(r-num,P)/找到Q中第一个不在P中的元素的位置,记为rr = r-next;point1 = r;poing2 = r-next;while (point2 != NULL) /从r开始遍历链表Qn = point2-num;if(ismember(n,P)point1-next = point2-next;/如果遍历到的元素是P中的元素,那么把它删掉elsepoint1 = point2;/否则继续point2 = point2-next;tail-next = r; /把剩余的元素放到P中return P;2002_4/*=*/*函数名称:2004_4.c */ /*函数目的:用链表表示八进制数以及它们的和 */*Writen by Apechn ,Soft Lab of JLU */*=*/#include struct nodeint num;node* next;node* inverse(node* head) /子函数,逆转链表的所有指针,把原来的尾结点变成头结点node *f,*g,*h;if (head != NULL)f = head;g = NULL;while (f-next != NULL)h = f;f = f-next;h-next = g;g = h;f-next = g;head = f;return head;node* Add(node* P,node* Q) /题目要求的函数node *p,*q,*r,*head = NULL;int carry,temp;if (P = NULL)return Q;if (Q = NULL)return P;p = inverse(P); /逆转两个链表的指针q = inverse(Q);carry = 0; /进位设为0while (p != NULL & q != NULL)/逐为相加两个数,知道其中一个加完为止temp = p-num + q-num +carry;r = new node;r-num = temp % 8;r-next = head;head = r;carry = temp/8;p = p-next;q = q-next;if (q = NULL) /修改一下指针,便于统一计算q = p;while (q != NULL) /把剩余的数加完temp = q-num + carry;r = new node;r-num = temp % 8;r-next = head;head = r;carry = temp/8;q = q-next;return head;2002_5/*=*/*函数名称:2002_5.c */ /*程序目的:将一个函数改写为递归函数 */*Writen by Apechn ,Soft Lab of JLU */*=*/#include #include int m,n;doublef1(double x,double y)L:printf(This is S1 %d times /n,m);m+;printf(This is S2 %d times /n,n);n+;x = x + 1.5;y = y + x;if (y = 100)goto L;return sin(y);double f3(double x,double y)/递归函数printf(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数字营销 课件 第1章 绪论
- 千之家加盟合同范本
- 委托销售珠宝合同范本
- 玉产品采购合同范本
- 医院工程就业合同范本
- 房屋按揭银行合同范本
- 防水供销合同范本
- 居委 调解 追债合同范本
- 连锁餐饮合伙合同范本
- 社区安全知识培训教材课件
- 【一年级上册语文统编版(2024)-第四单元汉语拼音】14. ang eng ing ong第二课时课件
- 2025年交管12123驾驶证学法减分及驾驶安全理论知识试题库(附含答案)
- 知识产权保护与服务平台创新创业项目商业计划书
- 2025年胎膜早破护理胎膜早破护理查房模板
- 镇痛镇静指南解读
- 2025年贵州贵阳市水务环境集团有限公司招聘27人笔试参考题库附带答案详解(10套)
- 2025届中国南方航空“明珠优才管培生”全球招聘30人笔试参考题库附带答案详解(10套)
- 原发性系统性淀粉样变性的护理措施课件
- 《阿房宫赋》课件 统编版高中语文必修下册
- DB54T 0498.3-2025 生态系统碳汇计量与监测体系建设技术规范 第3部分:湿地碳汇计量与监测方法
- 桥小脑角肿瘤护理查房
评论
0/150
提交评论