>说明: <p></p></P>: d3 o# G4 Q* t2 R' N0 m
><FONT size=3>1. <FONT face=宋体>本文是对严蔚敏《数据结构</FONT>(c<FONT face=宋体>语言版</FONT>)<FONT face=宋体>习题集》一书中所有算法设计题目的解决方案<p></p></FONT></FONT></P>1 Q, ~8 K% ~4 o5 t, @7 F* W
><FONT size=3>2. <FONT face=宋体>本解答中的所有算法均采用类</FONT>c<FONT face=宋体>语言描述</FONT>,<FONT face=宋体>设计原则为面向交流、面向阅读</FONT>,<FONT face=宋体>作者不保证程序能够上机正常运行</FONT>(<FONT face=宋体>这种保证实际上也没有任何意义</FONT>);<p></p></FONT></P>
><FONT size=3>3. <FONT face=宋体>本解答原则上只给出源代码以及必要的注释</FONT>,<FONT face=宋体>对于一些难度较高或思路特殊的题目将给出简要的分析说明</FONT>,<FONT face=宋体>对于作者无法解决的题目将给出必要的讨论</FONT>.<FONT face=宋体>目前尚未解决的题目有</FONT>: 5.20, 10.40;<p></p></FONT></P>% x- a2 Q7 w' _, Q/ n
><FONT size=3>4. <FONT face=宋体>请读者在自己已经解决了某个题目或进行了充分的思考之后</FONT>,<FONT face=宋体>再参考本解答</FONT>,<FONT face=宋体>以保证复习效果</FONT>;<p></p></FONT></P>
><FONT size=3>5. <FONT face=宋体>由于作者水平所限</FONT>,<FONT face=宋体>本解答中一定存在不少这样或者那样的错误和不足</FONT>,<FONT face=宋体>希望读者们在阅读中多动脑、勤思考</FONT>,<FONT face=宋体>争取发现和纠正这些错误</FONT>,<FONT face=宋体>写出更好的算法来</FONT>.<p></p></FONT></P>
><FONT face=宋体>第一章</FONT> <FONT face=宋体>绪论</FONT> <p></p></P>
><FONT size=3>1.16 <p></p></FONT></P># w6 ?4 J2 a; k- F/ _) J
><FONT size=3>void print_descending(int x,int y,int z)//<FONT face=宋体>按从大到小顺序输出三个数</FONT></FONT>
><FONT size=3>1.17 <p></p></FONT></P>) p4 ^: o8 Q- Z# O7 B2 v5 }
><FONT size=3>Status fib(int k,int m,int &f)//<FONT face=宋体>求</FONT>k<FONT face=宋体>阶斐波那契序列的第</FONT>m<FONT face=宋体>项的值</FONT></FONT><FONT size=3>f2 A, U9 {5 C; X. g5 c
><FONT size=3>1.18 <p></p></FONT></P>% f) E8 S" N$ c% b3 _4 v# m
><FONT size=3>typedef struct{& L8 S! _; A; ]
><FONT size=3>typedef struct{3 D, g3 E4 `' `0 U8 F# @3 J
><FONT size=3>void summary(resulttype result[ ])//<FONT face=宋体>求各校的男女总分和团体总分</FONT>,<FONT face=宋体>假设结果已经储存在</FONT>result[ ]<FONT face=宋体>数组中</FONT></FONT>9 u; K$ a- T* r% j w' K
><FONT size=3>1.19 <p></p></FONT></P>9 |) p' D3 N# w, C9 p: w7 s
><FONT size=3>Status algo119(int a[ARRSIZE])//<FONT face=宋体>求</FONT>i!*2^i<FONT face=宋体>序列的值且不超过</FONT></FONT><FONT size=3>maxint
><FONT size=3>1.20 <p></p></FONT></P>5 R5 J" m- A/ }3 l7 d
><FONT size=3>void polyvalue()
><p><FONT face="Times New Roman"> </FONT></p></P>
0cm 0cm 0pt; TEXT-INDENT: 144pt; mso-char-indent-count: 9.0">第二章 线性表 <p></p></P><
><FONT size=3>2.10 <p></p></FONT></P><
><FONT size=3>Status DeleteK(SqList &a,int i,int k)//<FONT face=宋体>删除线性表</FONT>a<FONT face=宋体>中第</FONT>i<FONT face=宋体>个元素起的</FONT>k<FONT face=宋体>个元素</FONT></FONT>$ v; d- ]! M/ X0 H+ \7 B. h& j+ @
><FONT size=3>2.11<p></p></FONT></P><
><FONT size=3>Status Insert_SqList(SqList &va,int x)//<FONT face=宋体>把</FONT>x<FONT face=宋体>插入递增有序表</FONT>va<FONT face=宋体>中</FONT></FONT>4 c0 M; P. @# F1 X% M; i
><FONT size=3>2.12 <p></p></FONT></P><
><FONT size=3>int ListComp(SqList A,SqList B)//<FONT face=宋体>比较字符表</FONT>A<FONT face=宋体>和</FONT>B,<FONT face=宋体>并用返回值表示结果</FONT>,<FONT face=宋体>值为正</FONT>,<FONT face=宋体>表示</FONT>A>B;<FONT face=宋体>值为负</FONT>,<FONT face=宋体>表示</FONT>A<B;<FONT face=宋体>值为零</FONT>,<FONT face=宋体>表示</FONT></FONT><FONT size=3>A=B5 n+ [: m" y' k: k' {
><FONT size=3>2.13 <p></p></FONT></P><
><FONT size=3>LNode* Locate(LinkList L,int x)//<FONT face=宋体>链表上的元素查找</FONT>,<FONT face=宋体>返回指针</FONT></FONT>% r3 U8 d& W8 B2 s" D }
><FONT size=3>2.14 <p></p></FONT></P><
><FONT size=3>int Length(LinkList L)//<FONT face=宋体>求链表的长度</FONT></FONT>1 ]; K. N4 b2 a& M" k1 H p# T
><FONT size=3>2.15 <p></p></FONT></P><
><FONT size=3>void ListConcat(LinkList ha,LinkList hb,LinkList &hc)//<FONT face=宋体>把链表</FONT>hb<FONT face=宋体>接在</FONT>ha<FONT face=宋体>后面形成链表</FONT></FONT><FONT size=3>hc X! w; g' U+ ^% L9 i1 ~' Z5 w
><FONT size=3>2.16 <p></p></FONT></P><
><FONT size=3><FONT face=宋体>见书后答案</FONT>. <p></p></FONT></P><
><FONT size=3>2.17 <p></p></FONT></P><
><FONT size=3>Status Insert(LinkList &L,int i,int b)//<FONT face=宋体>在无头结点链表</FONT>L<FONT face=宋体>的第</FONT>i<FONT face=宋体>个元素之前插入元素</FONT></FONT><FONT size=3>b" g# Y/ y+ _# T- J) O
><FONT size=3>2.18 <p></p></FONT></P><
><FONT size=3>Status Delete(LinkList &L,int i)//<FONT face=宋体>在无头结点链表</FONT>L<FONT face=宋体>中删除第</FONT>i<FONT face=宋体>个元素</FONT></FONT>, \* j/ {+ m+ H
><FONT size=3>2.19 <p></p></FONT></P><
><FONT size=3>Status Delete_Between(Linklist &L,int mink,int maxk)//<FONT face=宋体>删除元素递增排列的链表</FONT>L<FONT face=宋体>中值大于</FONT>mink<FONT face=宋体>且小于</FONT>maxk<FONT face=宋体>的所有元素</FONT></FONT>% z8 S( \ k4 c0 A
><FONT size=3>2.20 <p></p></FONT></P><
><FONT size=3>Status Delete_Equal(Linklist &L)//<FONT face=宋体>删除元素递增排列的链表</FONT>L<FONT face=宋体>中所有值相同的元素</FONT></FONT>
><FONT size=3>2.21 <p></p></FONT></P><
><FONT size=3>void reverse(SqList &A)//<FONT face=宋体>顺序表的就地逆置</FONT></FONT>
><FONT size=3>2.22 <p></p></FONT></P><
><FONT size=3>void LinkList_reverse(Linklist &L)//<FONT face=宋体>链表的就地逆置</FONT>;<FONT face=宋体>为简化算法</FONT>,<FONT face=宋体>假设表长大于</FONT></FONT><FONT size=3>2
><FONT size=3>2.23 <p></p></FONT></P><
><FONT size=3>void merge1(LinkList &A,LinkList &B,LinkList &C)//<FONT face=宋体>把链表</FONT>A<FONT face=宋体>和</FONT>B<FONT face=宋体>合并为</FONT>C,A<FONT face=宋体>和</FONT>B<FONT face=宋体>的元素间隔排列</FONT>,<FONT face=宋体>且使用原存储空间</FONT></FONT>
><FONT size=3>2.24 <p></p></FONT></P><P><FONT size=3>void reverse_merge(LinkList &A,LinkList &B,LinkList &C)//<FONT face=宋体>把元素递增排列的链表</FONT>A<FONT face=宋体>和</FONT>B<FONT face=宋体>合并为</FONT>C,<FONT face=宋体>且</FONT>C<FONT face=宋体>中元素递减排列</FONT>,<FONT face=宋体>使用原空间</FONT></FONT>
>很长呀</P><
>不过还是十分感谢</P>| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |