>说明: <p></p></P>
><FONT size=3>1. <FONT face=宋体>本文是对严蔚敏《数据结构</FONT>(c<FONT face=宋体>语言版</FONT>)<FONT face=宋体>习题集》一书中所有算法设计题目的解决方案<p></p></FONT></FONT></P>
><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) t# v9 }& F- d: a; W S
><FONT size=3>3. <FONT face=宋体>本解答原则上只给出源代码以及必要的注释</FONT>,<FONT face=宋体>对于一些难度较高或思路特殊的题目将给出简要的分析说明</FONT>,<FONT face=宋体>对于作者无法解决的题目将给出必要的讨论</FONT>.<FONT face=宋体>目前尚未解决的题目有</FONT>: 5.20, 10.40;<p></p></FONT></P>/ y0 d! i* D/ B2 s- q s$ R
><FONT size=3>4. <FONT face=宋体>请读者在自己已经解决了某个题目或进行了充分的思考之后</FONT>,<FONT face=宋体>再参考本解答</FONT>,<FONT face=宋体>以保证复习效果</FONT>;<p></p></FONT></P>1 B! g5 b3 P7 v2 V4 n3 Q" H# B
><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>5 A- B( y2 T) ?+ O8 B
><FONT size=3>1.16 <p></p></FONT></P>' k* o) R" H- S8 [+ i- Q4 n3 K
><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>
><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; [2 d8 V3 k4 a) C7 r
><FONT size=3>1.18 <p></p></FONT></P>
><FONT size=3>typedef struct{
><FONT size=3>typedef struct{
><FONT size=3>void summary(resulttype result[ ])//<FONT face=宋体>求各校的男女总分和团体总分</FONT>,<FONT face=宋体>假设结果已经储存在</FONT>result[ ]<FONT face=宋体>数组中</FONT></FONT>1 n1 h7 F; V! P7 N1 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>* _9 v! F8 z6 H/ n. P3 j
><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>1 h$ r$ |( I8 O. _. W
><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
><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>: z- p$ |8 G# _$ F" V
><FONT size=3>2.14 <p></p></FONT></P><
><FONT size=3>int Length(LinkList L)//<FONT face=宋体>求链表的长度</FONT></FONT>6 L: I" s% G, ^7 l; c
><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
><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- y0 g9 C. ~) c$ D1 |1 S- \0 Y
><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>. u4 w4 B% V7 v$ y* L# T4 K% [
><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>1 \ ?! P n1 y' @3 ~* U6 w9 m
><FONT size=3>2.21 <p></p></FONT></P><
><FONT size=3>void reverse(SqList &A)//<FONT face=宋体>顺序表的就地逆置</FONT></FONT>' |9 K, M1 f. F& O# a2 P
><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' ^2 p' Z+ a7 @
><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>; q0 N8 G; L* T8 F4 ^5 d3 {
><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 |