女人久久久www免费人成看片,国内自拍偷拍网,国产一区二区三区免费在线观看,欧美精品三区四区,91久久国产综合久久91,欧美成人精品第一区二区三区 ,美女成人在线观看

軟題庫(kù) 移動(dòng)APP 掃碼下載APP 隨時(shí)隨地移動(dòng)學(xué)習(xí) 培訓(xùn)課程
試卷名稱 2012年上半年程序員考試下午真題試題(案例分析)
考試中心《2012年上半年程序員考試下午真題試題(案例分析)》在線考試
試卷年份2012年上半年
試題題型【分析簡(jiǎn)答題】
試題內(nèi)容

閱讀以下說(shuō)明和C函數(shù),填補(bǔ)C函數(shù)中的空缺(1)~(5),將解答寫在答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
函數(shù)SetDiff(LA,LB)的功能是將LA與LB中的共有元素從LA中刪除,使得LA中僅保留與LB不同的元素,而LB不變,LA和LB為含頭結(jié)點(diǎn)的單鏈表的頭指針。
例如,單鏈表LA、LB的示例如下圖中的(a)、(b)所示,刪除與LB共有的元素后的LA如下圖中的(c)所示。
 
鏈表的結(jié)點(diǎn)類型定義如下:
   typedef struct Node {
       int data;
       struct Node *next;
   }Node, *LinkList;
函數(shù)SetDiff(LinkList LA, LinkList LB)的處理思路如下:
(1)從LA的第一個(gè)元素結(jié)點(diǎn)開(kāi)始,令LA的第一個(gè)元素為當(dāng)前元素。
(2)在LB中進(jìn)行順序查找,查找與LA的當(dāng)前元素相同者,方法是令LA的當(dāng)前元素先與LB的第一個(gè)元素進(jìn)行比較,若相等,則結(jié)束在LB中的查找過(guò)程,否則繼續(xù)與LB的下一個(gè)元素比較,重復(fù)以上過(guò)程,直到LB中的某一個(gè)元素與LA的當(dāng)前元素相等(表明查找成功),或者到達(dá)LB的表尾(表明查找失?。橹?。
(3)結(jié)束在LB表的一次查找后,若在LB中發(fā)現(xiàn)了與LA的當(dāng)前元素相同者,則刪除LA的當(dāng)前元素,否則保留LA的當(dāng)前元素。
(4)取LA的下一個(gè)元素為當(dāng)前元素,重復(fù)(2)、(3),直到LA的表尾。
【C函數(shù)】
       void SetDiff (LinkList LA, LinkList LB)
       {
       LinkList pre, pa, pb;
       /* pa用于指向單鏈表LA的當(dāng)前元素結(jié)點(diǎn),pre指向pa所指元素的前驅(qū) */
       /* pb用于指向單鏈表LB的元素結(jié)點(diǎn) */
        (1) ;  /* 開(kāi)始時(shí)令pa指向LA的第一個(gè)元素 */
       pre=LA;
       while (pa)  {
            pb=LB->next;
       /* 在LB中查找與LA的當(dāng)前元素相同者,直到找到或者到達(dá)表尾 */
          while( (2) )  {
              if (pa->data==pb->data)
                 break;
                (3) ;
          }
         
          if (!pb)  {
          /* 若在LB中沒(méi)有找到與LA中當(dāng)前元素相同者,則繼續(xù)考察LA的后續(xù)元素 */
                 pre=pa;
                 pa=pa->next;
             }
             else{
          /* 若在LB中找到與LA的當(dāng)前元素相同者,則刪除LA的當(dāng)前元素 */
                 pre->next= (4) ;
                 free (pa);
                 pa= (5) ;
          }
}
}


相關(guān)試題

推薦文章