首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C语言函数,将应填入(n)。 【说明】 已知包含头结点(不存储元素)的单链表的元素已经按照非递减方式排序,函数 compress(NODE*head)的功能是去掉其中重复的元素,使得链表中的元素互不相同。 处理过程中,当元素重复出
阅读以下说明和C语言函数,将应填入(n)。 【说明】 已知包含头结点(不存储元素)的单链表的元素已经按照非递减方式排序,函数 compress(NODE*head)的功能是去掉其中重复的元素,使得链表中的元素互不相同。 处理过程中,当元素重复出
admin
2009-01-20
60
问题
阅读以下说明和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://jikaoti.com/ti/1ZW7FFFM
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
某企业对多项已完成的数据处理任务进行了评估,按其满意度和重要性度量值为坐标,标在下图中,用小圆表示)。这些坐标点分别落入I、Ⅱ、Ⅲ、Ⅳ四个区中。领导认为,位于________区中的任务是需要优先改进的。
一个完整的计算机系统由______组成。
已知5个自然数(可有重复)的最小值是20,最大值是22,平均值是21.2,则可以推断,中位数是____________。
在Excel的A1单元格中输入函数“=LEFT(“信息处理技术员”,2)”,按回车键后,A1单元格中的值为()。
Windows多窗口的排列方式不包括()。
下列选项中,具有连接范围窄、用户数少、配置容易、连接速率高等特点的网络是(8)。
社会问卷调查是一种常见的调查方法。设计问卷的注意事项中不包括(31)。
设有关系R、S、T如下所示,则(55)________________。
在Excel2007中,在单元格A1中输入函数“=LEN(”信息处理技术员”)”,按回车键后,则A1单元格中的值为__________。
随机试题
根据反馈的来源,操作反馈可分为【】
社区卫生服务的阐述正确的是
患者男,70岁。以肺癌入院。血型为B型、RhD阳性。次日因贫血输B型红细胞2U,无任何不良反应。28天后经盐水法配血相合后又输入B型红细胞2U,当第一袋血输入20ml左右,病人突然寒战、大汗、面色苍白、血压下降、腰背发酸、胀痛、无尿。考虑急性溶血性输血反应
某实施监理的工程,建设单位与甲施工单位签订施工合同,约定的承包范围包括A、B、C、D、E五个子项目,其中,子项目A包括拆除废弃建筑物和新建工程两部分,拆除废弃建筑物分包给具有相应资质的乙施工单位。工程实施过程中发生下列事件:事件一:由于
某股份公司于2017年1月1日开业,领受工商营业执照、房产证、土地使用证、商标注册证各一件;本企业实收资本3000万元,2017年发生如下业务:(1)签订购销合同,合同记载的购销金额为1360万元。(2)4月,与甲企业签订以物易物合同,合同规定,该公司
无论犯罪人是本国人还是外国人,只要在本国领域内犯罪都适用于本国刑法,体现了()。
要从代号为A、B、C、D、E、F的六个侦察员中挑选出若干人去破案,人选的配备要求,必须注意下列各点:①A、B两人至少去一个人②A、D不能一起去③A、E、F三人中要派两人去④B、C两人中去一人⑤C、D两人中去一人
报复陷害罪的犯罪对象是()。
Afewdecadesago,theworldbankingcommunityinventednewElectronicFundsTransfer(EFT)systemstomovemoneymoreefficient
列表框中被选中的数据项的位置可以通过一个属性获得,这个属性是
最新回复
(
0
)