午夜精品电影,99re热精品视频,在线亚洲+欧美+日本专区,欧美第6页,中国黄色片视频,四虎成人永久,一区二区三区四区五区在线

軟題庫 學習課程
當前位置:信管網 >> 在線考試中心 >> 試題查看
試題題型【分析簡答題】
試題內容

閱讀以下說明和 C  代碼,填補代碼中的空缺,將解答填入答題紙的對應欄內。
【說明】
函數 GetListElemPtr(LinkList L,int i)的功能是查找含頭結點單鏈表的第i個元素。若找到,則返回指向該結點的指針,否則返回空指針。
函數DelListElem(LinkList L,int i,ElemType *e)  的功能是刪除含頭結點單鏈表的第 i個元素結點,若成功則返回 SUCCESS ,并由參數e 帶回被刪除元素的值,否則返回ERROR 。
例如,某含頭結點單鏈表 L 如圖 4-1  (a)  所示,刪除第 3 個元素結點后的單鏈表如 圖 4-1 (b) 所示。

#define  SUCCESS   0
#define  ERROR    -1

typedef int Status;
typedef int ElemType;

鏈表的結點類型定義如下:

typedef struct Node{
ElemType data;
struct Node  *next;
}Node ,*LinkList;
【C 代碼】
LinkList  GetListElemPtr(LinkList  L ,int  i)
{ /* L是含頭結點的單鏈表的頭指針,在該單鏈表中查找第i個元素結點:
若找到,則返回該元素結點的指針,否則返回NULL
*/
LinkList  p;
int   k;      /*用于元素結點計數*/

if  (i<1 ∣∣ !L ∣∣ !L->next)  return NULL;

k  =  1;   P  =  L->next;          / *令p指向第1個元素所在結點*/
while (p &&             (1)       ) {  /*查找第i個元素所在結點*/
(2)       ;  ++k;
}
return p;
}

Status  DelListElem(LinkList  L ,int i ,ElemType  *e)
{   /*在含頭結點的單鏈表L中,刪除第i個元素,并由e帶回其值*/

LinkList  p,q;

/*令p指向第i個元素的前驅結點*/
if (i==1)
(3)      ;
else
p = GetListElemPtr(L ,i-1);

if (!p ∣∣ !p->next)       return ERROR; /*不存在第i個元素*/

q =      (4)     ;            /*令q指向待刪除的結點*/
p->next = q->next;     /*從鏈表中刪除結點*/
(5)        ;              /*通過參數e帶回被刪除結點的數據*/
free(q);
return  SUCCESS;
}

查看答案

相關試題