问题 填空题

[说明]

函数sort(NODE*head)的功能是:用冒泡排序法对单链表中的元素进行非递减排序。对于两个相邻节点中的元素,若较小的元素在后面,则交换这两个节点中的元素值。其中,head指向链表的头节点。排序时,为了避免每趟都扫描到链表的尾节点,设置一个指针endptr,使其指向下趟扫描需要到达的最后一个节点。例如,对于图8-25(a)所示的链表进行一趟冒泡排序后,得到图8-25(b)所示的链表。

链表的节点类型定义如下:

typedef Struet 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;

 

(3)处填()

答案

参考答案:ptr!=endptr,或其他等价形式

解答题
问答题