首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C语言函数,将应填入(n)。 【说明】 已知包含头结点(不存储元素)的单链表的元素已经按照非递减方式排序,函数 compress(NODE*head)的功能是去掉其中重复的元素,使得链表中的元素互不相同。 处理过程中,当元素重复出
阅读以下说明和C语言函数,将应填入(n)。 【说明】 已知包含头结点(不存储元素)的单链表的元素已经按照非递减方式排序,函数 compress(NODE*head)的功能是去掉其中重复的元素,使得链表中的元素互不相同。 处理过程中,当元素重复出
admin
2009-01-20
93
问题
阅读以下说明和C语言函数,将应填入(n)。
【说明】
已知包含头结点(不存储元素)的单链表的元素已经按照非递减方式排序,函数 compress(NODE*head)的功能是去掉其中重复的元素,使得链表中的元素互不相同。
处理过程中,当元素重复出现时,保留元素第一次出现所在的结点。
图2-1(a)、(b)是经函数compress()处理前后的链表结构示例图。
链表的结点类型定义如下:
typedef struct Node{
int data;
struct Node *next;
}NODE;
【C语言函数】
void compress(NODE *head)
{ NODE *ptr,*q;
ptr= (1); /*取得第一个元素结点的指针*/
while( (2)&& ptr->next) {
q=ptr->next;
while(q&&(3)) { /*处理重复元素*/
(4)q->next;
free(q);
q=ptr->next;
}
(5) ptr->next;
}/*end of while */
}/*end of compress*/
选项
答案
(1)head->next (2)ptr (3)q->data == ptr->data 或ptr->next->data==ptr->data,或其等价表示 (4)ptr->next (5)ptr
解析
本题考查基本程序设计能力。
链表上的查找、插入和删除运算是常见的考点。本题要求去掉链表中的重复元素,使得链表中的元素互不相同,显然是对链表进行查找和删除操作。
对于元素已经按照非递减方式排序的单链表,删除其中重复的元素,可以采用两种思路。
1.顺序地遍历链表,对于逻辑上相邻的两个元素,比较它们是否相同,若相同,则删除后一个元素的结点,直到表尾。代码如下:
ptr=head->next; /*取得第一个元素结点的指针*/
while (ptr && ptr->next){ /*指针ptr指示出重复序列的第一个元素结点*/
q=ptr->next;
while(q && ptr->data==q->data) { /*处理重复元素*/
ptr->next=q->next; /*将结点从链表中删除*/
free(q);
q=ptr->next; /*继续扫描后继元素*/
}
ptr=ptr->next;
}
2.对于每一组重复元素,先找到其中的第一个结点,然后向后查找,直到出现一个相异元素时为止,此时保留重复元素的第一个结点,其余结点则从链表中删除。
ptr=head->next; /*取得第一个元素结点的指针*/
while (ptr && ptr->next) { /*指针ptr指示出重复序列的第一个元素结点*/
q=ptr->next;
while(q && ptr->data==q->data) /*查找重复元素*/
q=q->next;
s=ptr->next; /*需要删除的第一个结点*/
ptr->next=q; /*保留重复序列的第一个结点,将其余结点从链表中删除*/
while (s && s!=q} { /*逐个释放被删除结点的空间*/
t = s->next; free(s); s = t;
}
ptr=ptr->next;
}
题目中采用的是第一种思路。
转载请注明原文地址:https://kaotiyun.com/show/MsjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
在Excel中,若要计算出B3:E6区域内的数据的最大值并保存在B7单元格中,应在B7单元格中输入______。
企业建立数据处理系统需要考虑的原则不包括________。
最能反映小型企业内大多数职工工资状况的统计指标是全体职工工资的______。
计算机操作人员对软件响应性的要求不包括(24)。
银行的信息非常重要,对信息以及信息处理的安全性要求很高。安全性包括多项任务,但不(24)。
下列软件中,(35)可以完成文件压缩和还原。
在Excel2007中,设单元格A1中的值为一100,B1中的值为100,A2中的值为0,B2中的值为1,若在C1单元格中输入“=IF(A1+B1
在Excel2010中,设A1单元格中的值为20,A2单元格中的值为60,若在C1单元格中输入函数“=AVERAGE(A1,A2)”,按回车键后,,则C1单元格中的值为(
某班级有40名学生,本次数学考试大多在80分上下。老师为了快速统计平均分,对每个学生的分数按80分为基准,记录其相对分(多出的分值用正数表示,减少的分值用负数表示,恰巧等于80分时用0表示),再统计出各种相对分的人数,如下表:根据上表可推算出,这次考试
在Word中采用(47)可实现下图显示的排版格式。
随机试题
无故不参加考核的国家公务员,经教育仍拒绝参加的,考核结果可直接定为()
中心暗点不见于
下列哪项是最常用的急性毒性指标
关于工程质量事故的分类,说法不正确的一项是()。
人们对自己能否成功的从事某一成就行为的主观判断称为()。
下列各项中必须通过招标方式签订合同的有()。
2015年10月23日,中国人民银行宣布自2015年10月24日起对商业银行和农村合作金融机构等不再设置存款利率浮动上限,这意味着我国利率管制从此基本放开。请根据所学金融理论简要评述我国利率管制放开的影响。
X:一次性塑料杯子含有对环境有害的氟氯烃,应该用纸杯子代替它。在生产这种泡沫塑料的过程中会产生苯乙烯,它是一种对人体有害的致癌物。此外,泡沫塑料不易被大自然分解,会长久地留在自然界。Y:你忽视了制造纸杯对环境的影响。研究表明,生产纸杯要燃烧更多的
ThefamilyisthecenterofmosttraditionalAsians’lives.Manypeopleworryabouttheirfamilieswelfare,reputation,andhono
添加新联系人,姓名为:王龙;邮件地址为:wanglong@lnu.edu.cn。
最新回复
(
0
)