1 / 18
文档名称:

数据结构与算法分析课后习题.doc

格式:doc   大小:98KB   页数:18
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构与算法分析课后习题.doc

上传人:花双韵芝 2022/6/12 文件大小:98 KB

下载得到文件列表

数据结构与算法分析课后习题.doc

相关文档

文档介绍

文档介绍:数据结构与算法解析课后习题答案
数据结构与算法解析课后习题答案
1/18
数据结构与算法解析课后习题答案
数据结构与算法解析课后习题答案
【篇一:《数据结构与算法》课后习题答案】
>
i++;
数据结构与算法解析课后习题答案
数据结构与算法解析课后习题答案
18/18
数据结构与算法解析课后习题答案
}
a-last-=n;
}
数据结构与算法解析课后习题答案
数据结构与算法解析课后习题答案
18/18
数据结构与算法解析课后习题答案
4.线性表中有n个元素,每个元素是一个字符,现存于向量r[n]
试写一算法,使r中的字符按字母字符、数字字符和其余字符的次序
排列。要求利用原来的存储空间,元素移动次数最小。
【提示】对线性表进行两次扫描,第一次将所有的字母放在前面,
第二次将所有的数字放在字母之后,其余字符从前。
intfch(charc)/*判断c是否字母*/
{if(c=ac=z||c=ac=z)return(1);
elsereturn(0);
}
intfnum(charc)/*判断c是否数字*/

中,
数据结构与算法解析课后习题答案
数据结构与算法解析课后习题答案
9/18
数据结构与算法解析课后习题答案
{if(c=0c=9)return(1);
elsereturn(0);
}
voidprocess(charr[n])
{low=0;
high=n-1;
while(lowhigh)/*将字母放在前面*/
{while(lowhighfch(r[low]))low++;
while(lowhigh!fch(r[high]))high--;
if(lowhigh)
{k=r[low];
r[low]=r[high];
r[high]=k;
}
}
low=low+1;
high=n-1;
while(lowhigh)/*将数字放在字母后边,其余字符前面*/{while(lowhighfnum(r[low]))low++;while(lowhigh!fnum(r[high]))high--;if(lowhigh)
{k=r[low];
r[low]=r[high];
r[high]=k;
}
}
}
5.线性表用次序存储,设计一个算法,用尽可能少的辅助存储空间将次序表中前m个元素和后n个元素进行整体互换。即将线性表:
数据结构与算法解析课后习题答案
数据结构与算法解析课后习题答案
18/18
数据结构与算法解析课后习题答案
(a1,a2,,am,b1,b2,),bn改变为:
(b1,b2,,bn,a1,a2,),。am
【提示】比较m和n的大小,若mn,则将表中元素依次前移
否则,将表中元素依次后移n次。
voidprocess(seqlist*l,intm,intn)

m次;
数据结构与算法解析课后习题答案
数据结构与算法解析课后习题答案
11/18
数据结构与算法解析课后习题答案
{if(m=n)
for(i=1;i=m;i++)
{x=l-data[0];
for(k=1;k=l-last;k++)
l-data[k-1]=l-data[k];
l-data[l-last]=x;
}
elsefor(i=1;i=n;i++)
{x=l-data[l-last];
for(k=l-last-1;k=0;k--)
l-data[k+1]=l-data[k];
l-data[0]=x;}
}
6.已知带头结点的单链表l中的结点是按整数值递增排列的,试写一算法,将值为x的结点插入到表l中,使得l依旧递增有序,并且解析算法的时间复杂度。
linklistinsert(linklistl,intx)
{p=l;
while(p-nextxp-next-data)
p=p-next;/*寻找插入地址*/s=(lnode*)malloc(sizeof(lnode));/*申请结点空间*/s-data=x;/*填装结点*/s-next=p-next;
p-next=s;/*将结点插入到链表中*/return(l);
}
7.假设