閱讀以下說明和C函數(shù),將應填入 (n) 處的語句或語句成分寫在答題紙的對應欄內(nèi)。
【說明】
已知單鏈表L含有頭結(jié)點,且結(jié)點中的元素值以遞增的方式排列。下面的函數(shù)DeleteList在L中查找所有值大于minK且小于maxK的元素,若找到,則逐個刪除,同時釋放被刪結(jié)點的空間。若鏈表中不存在滿足條件的元素,則返回-1,否則返回0。
例如,某單鏈表如圖4-1所示。若令minK為20、maxK為50,則刪除后的鏈表如圖4-2所示。
圖4-1
圖4-2
鏈表結(jié)點類型定義如下:
typedef struct Node{
int data;
struct Node *next;
}Node, *LinkList;
【C函數(shù)】
int DeleteList (LinkList L, int minK, int maxK)
{ /*在含頭結(jié)點的單鏈表L中刪除大于minK且小于maxK的元素*/
(1) *q = L, *p = L->next; /*p指向第一個元素節(jié)點*/
int delTag = 0;
while ( p )
if ( p->data <= minK )
{ q = p; p = (2) ; }
else
if ( p->data < maxK ) { /*找到刪除滿足條件的節(jié)點*/
q->next = (3) ; free(p);
p = (4) ; delTag = 1;
}
else break;
if ( (5) ) return -1;
return 0;
}