- 1、本文档共76页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Void convers2(slnodetype *la) slnodetpe *p,*q; P = la-next; La-next = NULL; While (p != NULL); { q = p; p = p-next; q-next = la-next; la-next = q; } 例:在一个给定的线性表中删除元素值在x到y之间的所有元素,要求以较高的效率实现 算法思想:先将向量A中所有在x到y之间的元素置成一个特殊的值0,并不立即删除它们,然后从最后向前依次扫描,删除为0的元素,移动后面的元素。 void del(A,n,x,y) int A[]; int n,x,y; { int i,k; for (i=1; i=n; i++) if (A[i]=x A[i]=y) A[i]=0; for (i=n; i=1; i--) if (A[i]=0) { for (k=i; k=(n-1); k++) A[k] = A[k+1]; n--; } } 例:用不多于3n/2的平均比较次数,在一个线性表中找出最大和最小值的元素 void maxmin(A,n) int A[]; int n; { int max, min, i; for (i=2; i=n; i++) if (A[i] max) max = A[i]; else if (A[i] min) min = A[i]; printf(“max = %d, min = %d\n”, max, min); } 分析: 最坏情况:元素以递减顺序排列,(A[i]max)和 (A[i]min) 均需比较 n-1 次,所以总的比较次数为:2(n-1) 最好情况:元素以递增顺序排列,(A[i]max)均成立,不须进行 (A[i]min) 的比较,所以总的比较次数为:(n-1) 平均: (2(n-1)+n-1)/2 = 3n/2 – 3/2 例:一元多项式的相加 typedef struct pnode { float coef; //系数 int exp; //指数 struct pnode *next; //指向下一节点 } polynode; coef exp next 多项式 2 + 3X + 5X3 + 2X4 可表示为: -1 0 0 2 1 3 3 5 4 2 多项式 2 + 3X + 5X3 + 2X4 3 + 2X + 4X2 相加 初始化; While (两个链都没处理完) { if (指针指向当前节点的指数项相同) {系数相加,在C链中天加新的节点; A、B链的指针均前移;} else {以指数小的项的系数添入C链中的新节点; 指数小的相应链指针前移;} } While(A链处理完) { 顺序处理B链;} While(B链处理完) { 顺序处理A链;} 算法思想: -1 0 0 2 1 3 3 5 4 2 A -1 0 0 3 1 2 2 4 B -1 0 C q1 q2 -1 0 0 2 1 3 3 5 4 2 A -1 0 0 3 1 2 2 4 B -1 0 C q1 q2 0 5 -1 0 0 2 1 3 3 5 4 2 A -1 0 0 3 1 2 2 4 B -1 0 C q1 q2 0 5 1 5 -1 0 0 2 1 3 3 5 4 2 A -1 0 0 3 1 2 2 4 B -1 0 C q1 q2 0 5 1 5 2 4 ………… 1、基于空间的考虑 2、基于时间的考虑 3、基于语言的考虑 顺序表和链表的比较 算法验证 按序号查找 linklist *GET(linklist *head,int i) { int j; linklist *p; p=head;j=0; while((p-next!=NULL)(ji)) { p=p-next; j++; } if (i==j) return p; else return NULL; } 查找运算 按值查找 linklist *LOCATE(l
您可能关注的文档
- 数控机床加工程序编制第4版教学作者顾京主编第3章节数控车床的程序编制课件幻灯片.ppt
- 数据库系统开发与PowerBuilder教学课件作者张晓云03.第三章节课件幻灯片.ppt
- 数控机床加工程序编制第4版教学作者顾京主编第4章节数控铣床的程序编制课件幻灯片.ppt
- 数据库系统开发与PowerBuilder教学课件作者张晓云04.第四章幻灯片.ppt
- 数控机床加工程序编制第4版教学作者顾京主编第5章节加工中心的程序编制课件幻灯片.ppt
- 数据库系统开发与PowerBuilder教学课件作者张晓云04.第四章节课件幻灯片.ppt
- 数控机床加工程序编制第4版教学作者顾京主编第6章节自动编程课件幻灯片.ppt
- 数控机床加工程序编制第4版习题答案作者顾京主编第1章节数控机床加工程序编制的基础课件幻灯片.ppt
- 数控机床加工程序编制第4版习题答案作者顾京主编第2章节常用编程指令及数学处理课件幻灯片.ppt
- 数据库系统开发与PowerBuilder教学课件作者张晓云05.第五章幻灯片.ppt
- 第18讲 第17课 西晋的短暂统一和北方各族的内迁.docx
- 第15讲 第14课 沟通中外文明的“丝绸之路”.docx
- 第13课时 中东 欧洲西部.doc
- 第17讲 第16 课三国鼎立.docx
- 第17讲 第16课 三国鼎立 带解析.docx
- 2024_2025年新教材高中历史课时检测9近代西方的法律与教化含解析新人教版选择性必修1.doc
- 2024_2025学年高二数学下学期期末备考试卷文含解析.docx
- 山西版2024高考政治一轮复习第二单元生产劳动与经营第5课时企业与劳动者教案.docx
- 第16讲 第15课 两汉的科技和文化 带解析.docx
- 第13课 宋元时期的科技与中外交通.docx
文档评论(0)