
数据结构(C语言版本)严蔚敏答案.docx
4页本文格式为Word版,下载可任意编辑数据结构(C语言版本)严蔚敏答案 严蔚敏《数据布局(C语言版)习题集》答案 说明: 1. 本文是对严蔚敏《数据布局(c语言版)习题集》一书中全体算法设计题目的解决方案,主要为一具.以下网友:biwier,szm99,siice,龙抬头,iamkent,zames,birdthinking,lovebuaa等为答案的修订和完善工作提出了名贵观法,在此表示感谢; 2. 本解答中的全体算法均采用类c语言描述,设计原那么为面向交流、面向阅读,不保证程序能够上机正常运行(这种保表明际上也没有任何意义); 3. 本解答原那么上只给出源代码以及必要的解释,对于一些难度较高或思路特殊的题目将给出简要的分析说明,对于无法解决的题目将给出必要的议论.目前尚未解决的题目有: 5.20, 10.40; 4. 请读者在自己已经解决了某个题目或举行了充分的斟酌之后,再参考本解答,以保证复习效果; 5. 由于水平所限,本解答中确定存在不少这样或者那样的错误和缺乏,梦想读者们在阅读中多动脑、勤斟酌,争取察觉和校正这些错误,写出更好的算法来.请将你察觉的错误或其它值得提升之处向报告: [email]yi-ju@[/email] 第一章 绪论 1.16 void print_descending(int x,int y,int z)//按从大到小依次输出三个数 { scanf(\ if(xy; //为表示交换的双目运算符,以下同 if(yz; if(xy; //冒泡排序 printf(\}//print_descending 1.17 Status fib(int k,int m,int if(kxi--) va.elem[i+1]=va.elem[i]; va.elem[i+1]=x; return OK; }//Insert_SqList 2.12 int ListComp(SqList A,SqList B)//对比字符表A和B,并用返回值表示结果,值为1,表示A>B;值为-1,表示AB.elem[i]?1:-1; if(A.length==B.length) return 0; return A.length>B.length?1:-1; //当两个字符表可以彼此对比的片面完全一致时,哪个较长,哪个就较大 }//ListComp 2.13 LNode* Locate(LinkList L,int x)//链表上的元素查找,返回指针 { for(p=l->next;pp=p->next); return p; }//Locate 2.14 int Length(LinkList L)//求链表的长度 { for(k=0,p=L;p->next;p=p->next,k++); return k; }//Length 2.15 void ListConcat(LinkList ha,LinkList hb,LinkList p=ha; while(p->next) p=p->next; p->next=hb; }//ListConcat 2.16 见书后答案. 2.17 Status Insert(LinkList q=(LinkList*)malloc(sizeof(LNode)); q.data=b; if(i==1) { q.next=p;L=q; //插入在链表头部 } else { while(--i>1) p=p->next; q->next=p->next;p->next=q; //插入在第i个元素的位置 } }//Insert 2.18 Status Delete(LinkList //删除第一个元素 else { p=L; while(--i>1) p=p->next; p->next=p->next->next; //删除第i个元素 } }//Delete 2.19 Status Delete_Between(Linklist while(p->next->datanext; //p是结果一个不大于mink的元素 if(p->next) //假设还有比mink更大的元素 { q=p->next; while(q->datanext; //q是第一个不小于maxk的元素 p->next=q; — 4 —。
