- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一章
选择题
1.A 2.B 3.C 4.D 5.B 6.C
第二章
选择题
1.A 2.D 3.D 4.C 5.A 6.C 7.B 8.B 9.D 10.D
应用题
1.
应该选用链接存储表示。如果才用顺序表示法,必须在一个连续的可用空间中为这N个表分配空间。初始时候因为不知道哪个表增长得快,必须平均分配空间。在程序运行过程中,有的表占用的空间增长得快,有的表占用空间增长得慢,有的表很快就使用完了分配给它的空间,有的表才占用了少许空间,在进行元素的插入时候就必须成片的移动其他表的空间,以空出位置进行插入;在元素删除时为填补空白,也可能移动许多元素。这个处理过程及其繁琐和低效。
如果采用链接存储,一个表的空间可以连续也可以不连续。表的增长通过动态分配内存得以解决,只要存储器未满,就不会发生表溢出;表的收缩可以通过动态存储释放实现,释放的空间还可以在以后动态分配给其他的存储需求,非常灵活方便。对于N个表(包括表的总数可能变化)共存的情形,处理十分简单快捷,插入、删除时间复杂度为O(1)。所以才用链接存储表示较好。
2.
一般来说,链式存储结构克服了顺序存储结构的三个缺点。首先,插入、删除操作不需要移动元素,只修改指针;其次,不需要预先分配空间,可根据需要动态申请空间;其三,表容量只受到内存空间的限制。其缺点是因为指针增加了空间开销,当空间不允许时,就不能克服顺序存储的缺点。
3.
顺序结构时ai与ai+1的物理位置相邻,链表结构时两者的位置不要求一定相邻。
7.
在顺序表中插入和删除一个节点需平均移动全表一半的节点。具体的移动次数取决于所插入和删除的节点的位置i和全表的长度n这两个因素。
算法设计题
分析:遍历整个顺序表,用k记录在x~y之间元素的个数,k的初始值为0。对于当前遍历到的元素,若其值在x~y之间,则前移k个位置;否则执行++k。这样每个不在x~y之间的元素仅仅移动一次,所以效率较高。
void Delete_xy( SeqList *A,int x,int y ){
int k;
k = 0;
for( i=0;iA-length;++i ){
if( A-data[i]x A-data[i]y )
k++;
else
A-data[i-k] = A-data[i]; /* 当前元素前移k个位置 */
A-length = A-length - k; /* 线性表长度减小 */
}
}
2.设集合A和B分别用两个递增有序的单链表表示,其中他们的头指针是pa和pb。求A交B的操作就是对A扫描,如果当前的扫描到的元素在B中出现则保留,否则删除。
LinkList AbingB( LinkList A,LinkList B ){
LinkList pa,pb,pre;
pa = A-next;
pb = B-next;
pre = A;
while( papb ){
if( pa-datapb-data ){ /* 若大于,则pb指针后移 */
q = pa;
pa = pa-next;
pre-next = pa;
free(q);
}else{ /* 相等,保留,pa、pb指针后移 */
pre = pa;
pa = pa-next;
pb = pb-next;
}
}
while( pa ){ /* 若单链表A没有遍历完,则将剩余节点删除 */
q = pa;
pa = pa-next;
free(q);
}
pre-next = NULL;
return (A);
}
本算法的时间开销主要是遍历,故时间复杂度为O(n)
分析:依次遍历访问单链表的节点,用冒泡排序的思想将该链表整理成有序。冒泡排序算法的基本思想比较简单:两两比较元素,值域小的元素前置,直到不再发生交换。
LinkList Sort_LinkList( LinkList L ){
int x,noswap;
LinkList pa,pb;
pa = L-next;
noswap = 1;
if( pa ){
while( noswap ){
noswap = 0;
pb = pa-next;
while( pb(pb-next!=NULL) ){
if( pb-datapb-next-data ){
x = pb-data;
pb-data = pb-next-data;
pb-next-data = x;
noswap = 1;
}
pb = pb-next;
}
}
}
您可能关注的文档
- 《装饰材料与构造》试卷A及答案.doc
- 《教育科学研究方法》考试复习资料.doc
- 十五古代诗歌四首.doc
- “我心中的的蓝天”朗诵比赛.doc
- 《食品与微生物》论文.doc
- 1高分子化学实验的基础知识和对苯二甲酰氯与己二胺的界面聚合.doc
- 数据库原系统概论复习.doc
- 什么是GPT(GUID分区表)磁盘.doc
- 水与我们的生活综合实践活动教案.doc
- 【徐州朗阁雅思英语】雅思阅读考试中的逻辑运用.doc
- 2024-2025学年安徽省亳州市涡阳县高二下学期2月开学考试政治试题(解析版).docx
- 2024-2025学年江西省赣州市上犹县高二下学期开学考试政治试题(解析版).docx
- 2024-2025学年山东省济宁市高二下学期开学考试政治试题(解析版).docx
- 2024-2025学年山西省卓越联盟高三下学期2月开学质量检测政治试题(解析版).docx
- 2024-2025学年新疆乌鲁木齐市高二下学期2月开学考试政治试题(解析版).docx
- 2024-2025学年新疆维吾尔自治区乌鲁木齐地区高三2月大联考文科综合政治试题(解析版).docx
- 2024-2025学年安徽省蚌埠市固镇县高一上学期1月期末考试政治试题 (解析版).docx
- 2024-2025学年江苏省扬州市高三上学期期末检测政治试卷(解析版).docx
- 2024-2025学年江西省吉安市高三上学期期末教学质量检测政治试题(解析版).docx
- 2024-2025学年山东省济宁市高二上学期1月期末考试政治试题(解析版).docx
文档评论(0)