未分类题

阅读以下说明和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;
}
}

A.shangxueba.cn/images/ct_crppxz200701_crppxprogbc_00023(20094).jpg'

【参考答案】

(1)ptr -> next(2)head->next(3)ptr !=endptr或其等价形式(4)ptr(5)pre......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题

未分类题
阅读以下应用说明、Visual Basic开发说明以及程序代码,将应填入(n)的字句写在对应栏内。【应用说明】某交通灯演示程序启动后,其运行窗口中包括红绿灯标志以及当前红绿灯状态剩余秒数的动态显示(如下图)。红灯与绿灯持续的时间分别为30秒与40秒。持续时间结束时,立即变更红绿灯,并重新显示剩余秒数。【Visual Basic开发说明】在开发过程中,先在窗体内制作形状“红绿灯框架”(长方形,透明),在该框架中,上部制作形状“红灯”(ShpRed,圆形),默认属性为透明;下部制作形状“绿灯” (ShpGreen,圆形),初始设置其填充方式属性FillStyle为实心,填充颜色属性FillColor为绿色。再设置两个图像框(Image1在左,Image2在右),使其能分别装入数字图像文件,以显示当前红绿灯状态剩余的秒数。10个数字图像文件N0.bmp~N9.bmp分别用于显示数字0、1、…、9,这些文件存放在该应用程序所在目录中,以便在程序运行时按需要选择装入这两个图像框。为使图像文件装入图像框时能自动改变大小以适应图像框,这些图像框的Stretch属性都应设置成(1)。为使这些数字能每秒变化一次,开发窗体中设置了计时器Timcr1,其Enable属性设置成True,其Interval属性设置成1000。程序中,全局变量Light用以标志当前红灯(0)或绿灯状态(1),RedT和GreenT分别表示红灯或绿灯状态剩余的秒数。计时器Timer1的定时过程是在该程序启动1秒后首次执行的,以后每隔1秒执行1次。开发者应考虑对以下四种情况的处理:绿灯持续、绿灯转红灯、红灯持续、红灯转绿灯。过程LoadNumber的功能是:将红绿灯剩余秒数N(2位整数)分离出两个一位数i与i,再将其变换成字符,删除前面可能产生的空格,再将数字图像文件Ni.bmp与Nj.bmp装入两个图像框(其中i与j应以相应的数字字符代替)。【Visual Basic程序代码】Public Light AS Integer, RedT As Integer, GreenT As IntegerPrivate Sub Form_Load()Light = 1 : GreenT = 40 : RedT - 0 '初始化设置End SubPrivate Sub Timer1_Timer() '计时器定时过程If Light = 1 Then '绿灯状态时(2)If GreenT > 0 Then '绿灯持续时Call LoadNumber (GreenT) '调用过程,显示数字GreenTElse '绿灯转红灯时ShpRed.FillStyle. = 0 '置红灯形状实心ShpRed.FillColor = vbRed '为红灯形状填充红色ShpGreen.FillStyle. = 1 '置绿灯形状透明Call LoadNumber(30)Light = 0 : RedT = 30End IfElse '红灯状态时RedT = RedT - 1If RedT > 0 Then '红灯持续时Call LoadNumber(RedT)Else '红灯转绿灯时ShpRed.FillStyle. = 1ShpGreen.FillStyle. = 0ShpGreen.FillColor = vbGreen(3)Light = 1 : GreenT = 40End IfEnd IfEnd SubSub LoadXumber (N As Integer) '根据剩余秒数N将数字图象装入图像框Dim i As Integer, j As Integeri = Int( (4) )j = (5)Image1.Picture = LoadPicture('N'&Trim(Str(i))&'.bmp') '显示十位上的数字Image2.Picture = LoadPicture('N'&Trim(Str(j))&'.bmp') '显示个位上的数字End Sub