问题
问答题
试题四:阅读以下说明和C函数,将应填入(n)处的语句或语句成分写在答题纸的对应栏内。 【说明】 己知单链表L含有头结点,且结点中的元素值以递增的方式排列。下面的函数DeleteList在L中查找所有值大于minK且小于maxK的元素,若找到,则逐个删除,同时释放被删结点的空间。若链表中不存在满足条件的元素,则返回-1,否则返回O。 例如,某单链表如图4-1所示。若令minK为20, maxK为50,则删除后的链表如图4-2所示。
链表结点类型定义如下: typedef struct Node{ int data; struct Node*next; }Node, *LinkList; 【C函数】
空(2)应为。
答案
参考答案:
p->next
解析:
空(1)处用于定义指针变量p和q,由于p和q之前已经有"*",因此,空(1)处应填入"Node",若填入"LinkList",则p和q为指向指针 变量的指针变量,此后对它们的使用方式就不正确了。由于链表中的元素已经按照升序排列,所以在第一个大于minK的元素之前都可以令指针一直沿着指针链后 移,即"q=p;p= p->next",直到p指向第一个大于minK的元素节点为止,在此过程中,q始终指向p所指节点的前驱。因此,空(2)处应填 入"p->next"。