版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、作业2.4,int Insert_SeqList(SeqList *L, int x) /*把x插入递增有序表L中*/ if(Llast+1MAXSIZE) return ERROR; for(i=Llast; Lelemix /*Insert_SeqList */,作业2.7 顺序表的就地逆置,void reverse(SeqList *L)/顺序表的就地逆置 for(i=0,j=Llast; inext; L-next=NULL; while(p) q=p; p=p-next; q-next=Lnext; /*把L的元素逐个插入新表表头之后*/ Lnext=q; /*LinkList_re
2、verse*/ 分析:本算法的思想是,逐个地把L的当前元素q插入新的链表头部,p为新表表头.,Int del_node(Linklist s,elemtype *e) Node *p,*pre; if(s-next=s)return error; pre=s;p=s-next; while(p-next!=s) pre=p;p=p-next; pre-next=s; *e=p-data; free(p); return ok; ,作业2.9循环链表的删除,作业2.11 A表和B表合并为C表,void merge1(LinkList *A,LinkList *B,LinkList *C) /*链
3、表A和B合并为C,A和B的元素间隔排列,且用原空间*/ Node *p, *q; p=A-next; q=B-next; C=A; while(p /*while*/ /*merge1 */,int IsReverse() SeqStack s; char e; InitStack( /IsReverse,3-5判断输入的字符串中 int front, rear,tag; SeqQueue;,注意:tag域的值为0表示“空”,1表示“非空,3-8带tag域的循环队列入队算法,int EnterQueue(SeqQueue *Q,int x) if(Qtag=1 /EnterQueue,3.8带
4、tag域的循环队列出队算法,int DeleteQueue(SeqQueue *Q, int *x) if(Q-tag=0) return FALSE; * x=Q-element Q-front; Q-front=(Q-front+1)%MAXSIZE; if(Q-front=Q-rear) Q-tag=0; /队列空 return TRUE; /DeleteQueue 分析:当循环队列容量较小而队列中每个元素占的空间较多时,此种表示方法可以节约较多的存储空间,较有价值。,4.3题参考答案 /串结点定义 typedef struct snode char ch; struct snode *
5、next; SNode; /链串定义 typedef struct SNode *head; SNode *tail; int len; LinkString;,/将串常量chars赋值给串S int StriAsign(LinkString *S,char *chars) SNode *new,*p; int i=0; /初始化串S为空链串 new=(SNode *)malloc(sizeof(SNode); if(!new) return(ERROR); new-next=null; S-head=new; S-tail=p=new; /建立链串S,并将串chars复制到S中 while(
6、charsi!=0) new=(SNode *)malloc(sizeof(SNode); new-ch=charsi; p-next=new; p=new; i+; p-next=null; /链表的表尾 S-tail=p; S-len=i; /串长度 return(OK); ,/两个串的比较 int StrCompare(LinkString *S,LinkString *T) SNode *q,*p; p=S-head-next; q=T-head-next; /p,q分别指向两个串的开始 while(p /如果对应位置的字符都相等,返回串的长度差 ,5.1,5.3,5.1(1) 6*8
7、*6=288 (2) 1000+(5*8+7)*6=1282 (3) 1000+(2*8+5)*6=1126 (4) 1000+(5*6+2)*6=1192 5.3(1) k=(i-1)*3-1+(j-i+1)+1=2*(i-1)+j (2) i=k/3+1; j=,(k/3+1)+(k%3-1)=k/3+k%3,5.4利用一个辅助向量空间的矩阵快速转置法,FastTransposeMatrix( TSMatrix A , TSMatrix *B) /* 利用一个辅助向量空间的矩阵快速转置法 */ int col, t, p, q, posMAXSIZE; B-len=A.len; B-n=A
8、.m; B-m=A.n; if( B-len) for( t=1; t=1; t-) post=post-1;,for( p=1; pdataq.row=A.datap.col; B-dataq.col=A.datap.row; B-dataq.e=A.datap.e; poscol+; ,FastTransposeMatrix( TSMatrix A , TSMatrix *B) /* 利用一个辅助空间的矩阵快速转置法 */ int col, p, q, pos; B-len=A.len; B-n=A.m; B-m=A.n; if( B-len) for( p=1; pdatapos.row
9、=A.datap.col; B-datapos.col=A.datap.row; B-datapos.e=A.datap.e; ,6.4,6.5(1)右单枝树 (2)左单枝树 (3)单根树或者空树,6.9,0,0,0,0,0,0,0,1,1,6.24交换左右子树算法,void exchangechild(BiTree t) BiTNode *p; if(t) p=t-lchild; t-lchild=t-rchild; t-rchild=p; exchangechild(t-lchild); exchangechild(t-rchild); /*注意:不能用中序遍历来交换*/,7.3用Dijk
10、stra算法求顶点1到其余顶点的最短路径的过程: 初始状态:S=V1; 第一步:v1到v3的路径v1,v3;长度15;新 S=V1,v3; 第二步: v1到v2的路径v1,v3,v2;长度19;新 S=V1,v3,v2;,第三步: v1到v5的路径v1,v3,v5;长度25;新 S=V1,v3,v2,v5;,第四步: v1到v4的路径v1,v3,v2,v4;长度29;新 S=V1,v3,v2,v5,v4;,第五步: v1到v6的路径v1,v3,v2,v4,v6;长度44;新 S=V1,v3,v2,v5,v4,v6;,7.14,普里姆算法:,7.12,A: V1,V2,V3,V8,V4,V5,V
11、7,V6; V1,V2,V3,V8, V5,V7, V4,V6; B: V1,V2,V4,V6,V5,V3,V7,V8; V1,V2,V4,V6,V3,V5,V7,V8; C: V1,V2,V4,V6,V5,V3,V7,V8; D: V1,V2,V5,V7,V8; E: V1,V6,V5,V7,V8; (97),8.1,若对大小均为N的有序表和无序表分别进行顺序查找。在等 概率查找时,讨论两者在下列情况下的平均查找长度: (1)查找不成功,两者ASL不相等;,(2)查找成功且表中只有一个关键字等于给定值K的记录时,平均查找长度相同:(n+1)/2;,(3)查找成功且表中有若干个关键字等于给定值
12、K的记录,一次查找要求找出所有记录时,平均查找长度不相同:,8.2,ASL= (1+2*2+3*4+4*3)/10 = 2.9,ASLsucc=(1+1+2+2+1+1+2+6)/8 = 16/8=2 ASLunsucc = (2+1+8+7+6+5+4+3+2+1+1)/11 = 40/11,8.5,8.12(1),ASLsucc = (1+2*2+3*3+4*3+5*2+6*1)/12 = 42/12,(2)长度为12的有序表在等概率时: ASLsucc = (1223445)/12 =37/12,ASLsucc = (1223444+5)/12 =38/12,(3),一趟结果:(170,
13、087,275,061,426,503,897,512,653,908),第二躺: d2=4 (170, 087, 275, 061, 426, 503, 897, 512, 653, 908),二躺结果: (170, 087, 275, 061, 426, 503, 897, 512, 653, 908),三躺结果:d3=3 (170, 087, 275, 061, 426, 503, 897, 512, 653, 908) ( 061 , 087, 275, 170 , 426, 503, 897, 512, 653, 908) 四躺结果:d4=2 ( 061 , 087, 275, 17
14、0 , 426, 503, 653 , 512, 897 , 908) 五躺结果:d5=1 ( 061 , 087, 170 , 275 , 426, 503, 512, 653 , 897 , 908),快速排序: 一趟: 426,087,275,061,170 503 897,908,653,512 二趟:170,087,275,061 426 512,653 897 908 三趟:061,087 170 275 512 653 四趟:061 087,堆排序:,初始序列: (503,087,512,061,908,170,897,275,653,426) 第一躺:426,653,897,5
15、03,87,170,512,275,61,908 第二躺:61,653,512,503,87,170,426,275,897,908 第三躺:61,503,512,275,87,170,426,653,897,908 第四躺:61,503,426,275,87,170,512,653,897,908 第五躺:170,275,426,61,87,503,512,653,897,908 第六躺:87,275,170,61,426,503,512,653,897,908 第七躺:61,87,170,275,426,503,512,653,897,908 第八躺:61,87,170,275,426,503,512,653,897,908 第九趟:61,87,170,275,426,503,512,653,897,908,9.8,void Bubble_So
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 迈瑞心电监护仪的操作技巧
- 江苏省苏州市市辖区2026届初三考前适应性训练6月1日第3天数学试题含解析
- 陕西省榆林市绥德县市级名校2026年初三下学期第二次“战疫”线上教学综合测试物理试题含解析
- 湖北宜昌2026年初三毕业班第二次统一检测试题数学试题试卷含解析
- 湖南省长沙市一中学教育集团2026届高中毕业班教学质量检测试题(二)物理试题含解析
- 广东省深圳市龙岗区大鹏新区华侨中学2025-2026学年初三考前热身数学试题含解析
- 2026年浙江省乐清市初三4月质量调研(二模)数学试题试卷含解析
- 浙江省丽水市第四中学2026年初三下学期8月开学物理试题含解析
- 河南省新乡市第七中学2025-2026学年初三第一次模拟(5月)数学试题含解析
- 面瘫的中医护理与护理创新
- 副食品配送卫生管理制度
- 新疆神火煤电有限公司电解铝大修渣无害化处理综合利用项目环评报告
- GB/T 45554-2025种猪生产性能测定技术规范
- 单兵战术动作低姿匍匐前进教案
- 2025新人教版七年级下册英语 Unit 8知识点梳理及语法讲义(答案版)
- 水库安全管理培训
- 工程劳务外包合同范本大全
- 统编版语文四年级下册 第一单元基础过关卷(试题)
- 自考《13180操作系统》考前强化练习试题库及答案
- 人工智能芯片设计 课件 周巍 第4-7章-人工智能与深度学习 -人工智能芯片架构设计
- 医院患者安全与防范措施管理规章制度
评论
0/150
提交评论