本节书摘来自华章出版社《数据结构与算法 C语言版》一 书中的第2章,第2.7节,作者:徐凤生,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.7习题

1描述头指针、头结点、首元结点的区别,并说明头指针和头结点的作用。
2在顺序表中插入和删除一个结点需平均移动多少个元素?具体的移动次数取决于哪两个因素?
3在单链表和双向链表中,从当前结点出发是否能访问到任何一个结点?
4若较频繁地对一个线性表进行插入和删除操作,该线性表宜采用何种存储结构?为什么?
5有线性表(a1,a2,…,ai-1,ai,ai+1,…,an),采用单链表存储,头指针为H,每个结点中存放线性表中的一个元素,现查找某个元素值为x的结点。分别写出下面三种情况的查找语句,要求查找时间尽量短。
(1)线性表中元素无序。
(2)线性表中元素递增有序。
(3)线性表中元素递减有序。
6下面是一个算法的核心部分,试说明该算法的功能。

pre=L->next;//L是一个带头结点的单链表,结点有数据域data和指针域next
if(pre!=NULL)
while(pre->next!=NULL){
p=pre->next;
if(p->data>=pre->data) pre=p;
else return(FALSE);
}
return(TUURE);
7设pa、pb分别指向两个带头结点的有序(从小到大)单链表。阅读下列程序,并回答以下问题:
(1)程序的功能。
(2)s1、s2中的值的含义。
(3)pa、pb中的值的含义。

void exam(LinkList pa,LinkList pa){
p1=pa->next;p2=pb->next;pa->next=NULL;s1=0;s2=0;
while(p1&&p2){
switch{
case(p1->datadata):p=p1;p1=p1->next;s2++;delete(p);
case(p1->data>p2->data):p2=p2->next;
case(p1->data=p2->data):p=p1;p1=p1->next;p->next=pa->next;
pa->next=p;p2=p2->next;s1++;
}
while(p1){p=p1;p1=p1->next;delete(p);s2++}
}

8假设长度大于1的循环单链表中,既无头结点也无头指针,p为指向该链表中某一结点的指针,编写算法删除该结点的前驱结点。
9已知两个单链表La和Lb分别表示两个集合,其元素递增排列。编写算法求其交集Lc,要求Lc以元素递减的单链表形式存储。
10已知单链表L是一个递增有序表,试编写一个高效算法,删除表中值大于min且小于max的结点(若表中有这样的结点),同时释放被删除的结点的空间,这里min和max是两个给定的参数。请分析你的算法的时间复杂度。
11已知非空单链表的头指针为L,试编写算法,交换p所指结点与其下一个结点在链表中的位置(设p指向的不是链表中的最后一个结点)。
12线性表中有n个元素,每个元素是一个字符,现存于数组R[n]中,试编写算法,使R中元素的字符按字母字符、数字字符和其他字符的顺序排列。要求利用原来的空间,元素移动次数最小。
13试编写在带头结点的单链表中删除(一个)最小值结点的(高效)算法。
14已知两个单链表La和Lb,其元素递增排列。编写算法,将La和Lb归并成一个单链表Lc,其元素递减排列(允许表中有相同的元素),要求不另辟新的空间。
15设以带头结点的双向循环链表表示的线性表L=(a1,a2,…,ai-1,ai,ai+1,…,an)。试编写一个时间复杂度为O(n)的算法,将L改造为L=(a1,a3,…,an,…,a4,a2)。
16设有一个双向循环链表,每个结点除有prior、data和next三个域外,还有一个访问频度域frep。在链表被启用之前,频度域frep的值为0,而每当对链表进行一次LocateElem(L,e)的操作后,被访问的结点的频度域frep的值增1,同时调整链表中结点之间的顺序,使其按发文频度非递增的次序顺序排列,以便始终保持被频繁访问的结点总是靠近表头结点。试写出符合上述要求的LocateElem操作的算法。

《数据结构与算法 C语言版》—— 2.7习题相关推荐

  1. 《数据结构与算法 C语言版》—— 3.8习题

    本节书摘来自华章出版社<数据结构与算法 C语言版>一 书中的第3章,第3.8节,作者:徐凤生,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 3.8习题 1名 ...

  2. 《数据结构与算法 C语言版》—— 2.5上机实验

    本节书摘来自华章出版社<数据结构与算法 C语言版>一 书中的第2章,第2.5节,作者:徐凤生,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2.5上机实验 实 ...

  3. 【数据结构与算法——C语言版】1. 数据结构与算法简介

    概念 数据结构:"一组数据的存储结构" 算法:"操作数据的一组方法" 数据结构是为算法服务的,算法是要作用再特定的数据结构上的. 简言之,在编程实践中,我们可能 ...

  4. 数据结构与算法C语言版—绪论

    1.基本概念和术语 1.数据(data):所有能输入到计算机中去的描述客观事物的符号 数值性数据 非数值性数据(多媒体信息处理) 2.数据元素(data element):数据的基本单位,也称结点(n ...

  5. c语言数据结构算法设计题,数据结构题集(C语言版)算法设计题答案[].doc

    数据结构题集(C语言版)算法设计题答案[].doc 第一章 绪论 1.16 void print_descending(int x,int y,int z)// 按从大到小顺序输出三个数 { scan ...

  6. c语言线性表库函数大全,数据结构(C语言版)-线性表习题详解

    <数据结构(C语言版)-线性表习题详解>由会员分享,可在线阅读,更多相关<数据结构(C语言版)-线性表习题详解(23页珍藏版)>请在人人文库网上搜索. 1.数 据 结 构 ,线 ...

  7. java递归单链表查找中间元素_《数据结构与算法——C语言描述》答案 3.11 查找单链表中的特定元素(递归)...

    转载请注明出处:http://blog.csdn.net/xdz78 #include #include //查找单链表中的特定元素,<数据结构与算法--c语言描述> 3.11 答案 in ...

  8. 数据结构与算法python描述_数据结构与算法——Python语言描述.pdf

    数据结构与算法--Python语言描述.pdf 欢迎加入非盈利Python编学习交流程QQ群783462347,群里免费提供500+本Python书籍! 欢迎加入非盈利Python编程学习交流程QQ群 ...

  9. 构建线性表的c语言代码,数据结构严蔚敏C语言版—线性表顺序存储结构(顺序表)C语言实现相关代码...

    1.运行环境 这里说明一下这里所有的C语言代码都是基于code::blocks 20.03编译运行的.当然一些其他集成开发环境应该也是可以的,个人不太喜欢功能太过强大的IDE,因为那同样意味着相关设置 ...

最新文章

  1. 浅析企业开展网站建设具有哪些实际意义?
  2. php根据单词截取英文语句,php按单词截取字符串的方法
  3. java 自动转 golang_基于dubbo-go的golang与java通信解决方案实践——伍:golang代码的生成...
  4. 《Windows via C/C++》学习笔记(二):Working with Characters and String
  5. 一个数如果刚好与它所有的真因子之和相等,则称该数为一个“完数
  6. EBay架构案例分析
  7. python 特征选择卡方_为什么pythonsklearn特征选择卡方(chi2)测试不是对称的?
  8. gets函数没有输入会怎样_如果没有“227事件”,肖战的未来会是怎样的?
  9. android blowfish加密算法,BlowFish加密算法研究
  10. 软件测试文档测试用例,软件测试用例文档模板(带实例)
  11. 全网通小区专家全自动做
  12. Win10安装pdf虚拟打印机的方法
  13. 易绍坤网络赚钱:淘宝客获取佣金网赚之路,该如何进行?
  14. win7网络改局域网计算机名,教你win7局域网设置方法
  15. 奇安信前三季营收31.9亿:同比增19% 扣非后净亏13.6亿
  16. 大学计算机课要怎么学,大学计算机课学结
  17. web前端课程设计(HTML和CSS实现餐饮美食文化网站)静态HTML网页制作
  18. X99主板2011-3接口E5 CPU一览表
  19. oracle 字符集问题处理,oracle 字符集问题解决
  20. OpenCV-Python (官方)中文教程(部分三)

热门文章

  1. python线程监控配置文件_一日一技:Python多线程的事件监控
  2. 显示驱动包含在Linux内核层,驱动程序层(上) - Linux内核--网络栈实现分析_Linux编程_Linux公社-Linux系统门户网站...
  3. Linux清空文件内容的三种方法
  4. pywt.upcoef中take使用详解
  5. porphet论文_时间序列模型Prophet使用详细讲解
  6. linux centos lamp,Centos下搭建LAMP
  7. hibench 压测flink_【原创】大数据基础之Benchmark(1)HiBench
  8. 信息系统项目管理师论文指导(2/3)
  9. Netty中实现多客户端连接与通信-以实现聊天室群聊功能为例(附代码下载)
  10. Sqlserver中使用ISNULL、CAST、CASE完成对jsTree数据的查询