問答題
【EX-2-3】下面算法的功能是:刪除單鏈表L含兩個或兩個以上的數(shù)據(jù)結點中第一個值為x的結點的前驅結點。請在空白處填入正確的語句。 int delfirstx(LinkList &L, ElemType x) { LinkList prepre = L, pre = prepre->next, p; if(_______①________) return 0; p = _______②________; while(p != NULL && ________③______) { // 找到值為x結點 ________④_______; pre = p; p = p->next; //prepre、 pre、 p 同步后移一個結點 } if(p != NULL) { // 找到值為 x的p 結點 prepre->next = p; //刪除pre 結點 _______⑤________; //釋放pre 結點空間 return 1; //成功刪除返回 1 } else return 0; //未找到值為 x 的結點, 返回 0 }
答案:
① 首先檢查鏈表是否為空或者只有一個結點,因為題目要求至少有兩個結點才能刪除前驅結點。如果鏈表為空或者只有一個結點,則無...