>说明: <p></p></P>
><FONT size=3>1. <FONT face=宋体>本文是对严蔚敏《数据结构</FONT>(c<FONT face=宋体>语言版</FONT>)<FONT face=宋体>习题集》一书中所有算法设计题目的解决方案<p></p></FONT></FONT></P>" K2 e. E+ M6 K. p% x
><FONT size=3>2. <FONT face=宋体>本解答中的所有算法均采用类</FONT>c<FONT face=宋体>语言描述</FONT>,<FONT face=宋体>设计原则为面向交流、面向阅读</FONT>,<FONT face=宋体>作者不保证程序能够上机正常运行</FONT>(<FONT face=宋体>这种保证实际上也没有任何意义</FONT>);<p></p></FONT></P>- C& C: }! {, M& P0 } m
><FONT size=3>3. <FONT face=宋体>本解答原则上只给出源代码以及必要的注释</FONT>,<FONT face=宋体>对于一些难度较高或思路特殊的题目将给出简要的分析说明</FONT>,<FONT face=宋体>对于作者无法解决的题目将给出必要的讨论</FONT>.<FONT face=宋体>目前尚未解决的题目有</FONT>: 5.20, 10.40;<p></p></FONT></P>
><FONT size=3>4. <FONT face=宋体>请读者在自己已经解决了某个题目或进行了充分的思考之后</FONT>,<FONT face=宋体>再参考本解答</FONT>,<FONT face=宋体>以保证复习效果</FONT>;<p></p></FONT></P>3 j: v/ S2 W+ r; o
><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>6 V% }6 V9 M+ G
><FONT size=3>1.16 <p></p></FONT></P>
><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>: H* u6 g% |* A9 F: Z3 L
><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>f
><FONT size=3>1.18 <p></p></FONT></P>8 D* |! g3 `2 \0 e! X) n3 X
><FONT size=3>typedef struct{" {: e; l, t1 b
><FONT size=3>typedef struct{4 I+ `6 E, [7 u1 g& a# y
><FONT size=3>void summary(resulttype result[ ])//<FONT face=宋体>求各校的男女总分和团体总分</FONT>,<FONT face=宋体>假设结果已经储存在</FONT>result[ ]<FONT face=宋体>数组中</FONT></FONT>6 ~' T, b( n, d* |( g! ~
><FONT size=3>1.19 <p></p></FONT></P>
><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>
><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>6 y; Q/ Z, h8 ~+ f8 ?
><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>
><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=B( M1 {, x0 g% N; b
><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>
><FONT size=3>2.14 <p></p></FONT></P><
><FONT size=3>int Length(LinkList L)//<FONT face=宋体>求链表的长度</FONT></FONT>
><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; J1 r: @: l e: E
><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
><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>2 _5 Q2 b1 T* B8 l! S
><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>
><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>+ T& P! ~- ?, e7 l; r7 V
><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>( E9 |9 l, p Y6 Q7 o% i
><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>( N/ n' l1 K i$ }
>很长呀</P><
>不过还是十分感谢</P>| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |