首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。 【说明】 函数sort (NODE *head)的功能是;用冒泡排序法对单链表中的元素进行非递减排序。对于两个相邻结点中的元素,若较小的元素在前面,则交换这两个结点中的元素值。其中,he
阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。 【说明】 函数sort (NODE *head)的功能是;用冒泡排序法对单链表中的元素进行非递减排序。对于两个相邻结点中的元素,若较小的元素在前面,则交换这两个结点中的元素值。其中,he
admin
2008-11-20
92
问题
阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。
【说明】
函数sort (NODE *head)的功能是;用冒泡排序法对单链表中的元素进行非递减排序。对于两个相邻结点中的元素,若较小的元素在前面,则交换这两个结点中的元素值。其中,head指向链表的头结点。排序时,为了避免每趟都扫描到链表的尾结点,设置一个指针endptr,使其指向下趟扫描需要到达的最后一个结点。例如,对于图4-1(a)的链表进行一趟冒泡排序后,得到图4-1(b)所示的链表。
链表的结点类型定义如下:
typedef struct Node {
int data;
struct Node *next;
} NODE;
【C语言函数】
void sort (NODE *head)
{ NODE *ptr,*preptr, *endptr;
int tempdata;
ptr = head -> next;
while ((1)) /*查找表尾结点*/
ptr = ptr -> next;
endptr = ptr; /*令endptr指向表尾结点*/
ptr =(2);
while(ptr != endptr) {
while((3)) {
if (ptr->data > ptr->next->data){
tempdata = ptr->data; /*交换相邻结点的数据*/
ptr->data = ptr->next->data;
ptr->next->data = tempdata;
}
preptr =(4); ptr = ptr -> next;
}
endptr =(5); ptr = head->next;
}
}
选项
答案
(1)ptr -> next (2)head->next (3)ptr !=endptr,或其等价形式 (4)ptr (5)preptr
解析
本题考查链表运算能力。
从题目中的以下代码可知,ptr最后应指向表尾结点。
ptr = head -> next;
while ( (1) ) /*查找表尾结点*/
ptr = ptr -> next;
endptr = ptr; /*令endptr指向表尾结点*/
显然,空(1)处应填入“ptr->next”,这样循环结束时,ptr指向表尾结点。若填入“ptr”,则循环结束时,ptr为空指针。
进行冒泡排序时,从头至尾依次比较逻辑上相邻的两个结点的数据,如果小元素在前大元素在后,则交换。这样,经过一趟扫描,就将最大元素交换到了表的最后。下一趟可将次大元素交换到最大元素之前。显然,空(2)处应填入“head->next”。
由于程序设置的endptr用于指示出每趟扫描需到达的最后一个结点,ptr用于依次扫描链表中的结点,因此空(3)处的循环条件为“ptr != endptr”。
显然,指针preptr起的作用是指向ptr的前驱结点,因此,ptr每向后修改一次,相应地preptr就要修改一次,空(4)处应填入“ptr”。本趟循环结束后,下一趟扫描也就确定了,因此在空(5)处填入“preptr”。
转载请注明原文地址:https://kaotiyun.com/show/jsjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
计算机操作系统的功能不包括_______。
下列关于主板的叙述中,不正确的是(12)。
下列关于无线路由器的叙述,不正确的是______。
下列软件中,属于系统软件的是()。
企业中的信息处理过程包括多个阶段,对每个阶段都应有目标要求,有规范的制度,有需要特别注意的事项。以下叙述中正确的是(25)。
文件的类型可以根据()来识别。
Windows多窗口的排列方式不包括()。
下列选项中,既是输入设备又是输出设备的是(6)。
以下关于信息存储的叙述中,不正确的是(66)。
随机试题
钱澄之后期诗歌的特点是【】
人格包括
公路隧道岩爆地段的岩爆烈度等级划分为()。
阿伦和梅耶所进行的综合研究提出的承诺不包括()。
所谓网络戏谑文化,是网民长期以来在互联网上形成的一种话语表达方式,不知从何时起,中国互联网拥有了一种特殊的语境,很多时候,反讽和隐喻比更有力,嬉笑的态度比严肃的发言更接近事情本质,戏谑的效果通常是通过猛烈的反差和鲜明的对比才得以形成的。填入划横线部
源起于美国次贷危机的此次全球性金融风暴,固然起于经济领域,但是,一石激起千层浪,如果不是人性中超乎现实允许范围的物质欲求过度膨胀,原本出于虚拟经济的一个颇有想象力的创意,也不会滚雪球般失控,以至弥漫成灾。那些从小优秀得无以复加的华尔街金融精英们,卖力煽动着
光雾山秋天的色彩总是那么灿烂,那么色彩斑斓。红叶、黄叶、绿叶,红的火焰跳跃,绿的苍郁翠微。如此诗情画意,怎不________?填入画横线部分最恰当的一项是()。
文艺复兴时期,成功塑造了一个典型的没落骑士的小说是()。
有如下的程序:#include<iostream>usingnamespacestd;classAT{friendostream&operator<<(ostream&,AT);}at;os
A、Itiselaboratelydecorated.B、Ithassurvivedsome2,000years.C、Itisverybig,withonlysixslimlegs.D、Itisshapedlik
最新回复
(
0
)