首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C语言函数,将应填入(n)。 【说明】 已知包含头结点(不存储元素)的单链表的元素已经按照非递减方式排序,函数 compress(NODE*head)的功能是去掉其中重复的元素,使得链表中的元素互不相同。 处理过程中,当元素重复出
阅读以下说明和C语言函数,将应填入(n)。 【说明】 已知包含头结点(不存储元素)的单链表的元素已经按照非递减方式排序,函数 compress(NODE*head)的功能是去掉其中重复的元素,使得链表中的元素互不相同。 处理过程中,当元素重复出
admin
2009-01-20
62
问题
阅读以下说明和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
程序员下午应用技术考试
软考初级
相关试题推荐
下列关于文件夹的叙述中,不正确的是______。
信息处理技术员考生信息库中,具有“准考证号”、“姓名”、“笔试成绩”与“机考成绩”等字段。按“笔试成绩>0 and机考成绩>0”查询,有r1人;按“笔试成绩>0 or机考成绩>0”查询,有r2人,则必然有关系(69)。
某学校上学期举办了多项课外活动,每个学生获得了一个课外活动总评分值,其中最低分61分,最高分138分。为使该评分指标标准化(评分范围落在0~100分,60分以上及格),使其更直观,更具有可比性(便于与各科目成绩和其他学期课外活动得分比较),需要将每个学生课
欲在桌面上移动窗口位置可以拖曳(36)。
以下除(7)外,常选定为数据收集的途径。
在SQL中,GROUPBY子句用于()。
在Word2007文档编辑时,使用(39)________________选项卡中的“分隔符”命令,可以在文档中指定位置强行分页。
________________是按照科学的城市发展理念,利用新一代信息技术,通过人、物、城市功能系统之间的无缝连接与协同联动,实现自感知、自适应、自优化,形成安全、便捷、高效、绿色的城市形态。
Win7控制面板中,可通过()查看系统的一些关键信息,并可进行调整视觉效果、调整索引选项、调整电源设置及打开磁盘清理等操作。
随机试题
西安碑林是我国最大的石质书库,典籍集中,名家书法荟萃。西安碑林始建于()。
科学管理理论的缺陷主要有【】
宫颈癌直接蔓延的最常见方式是()
诊断反流性食管炎最重要的检查方法是
资源利用的()原则,即在生产的投入端尽可能少地输入自然资源。
按照指标变量的性质和数列形态的不同,时间序列可以分为()。Ⅰ.平稳性时间数列Ⅱ.趋势性时间数列Ⅲ.随机时间序列Ⅳ.非随机时间序列
在ADO对象中,______对象负责连接数据库。
关系操作的特点是______操作。
Amodemwesternfamilyisusuallymadeupofahusband,awifeandtheirchildren.Inmodemwesternsociety,youngerchildrens
A、 B、 C、 A
最新回复
(
0
)