在线现看午夜福利片|女人16久久免费视频|鲁丝片一区鲁丝片二区鲁丝|一区二区三区欧美在线

  1. 
    
    <b id="glvx9"></b>
        1. <blockquote id="glvx9"><meter id="glvx9"></meter></blockquote>
            查看全部128種考試
            軟件水平考試
             考試動態(tài) 報考指南 歷年真題 模擬試題 復習資料 心得技巧 專業(yè)英語 技術文章 軟考論壇 考試用書
             程序員 軟件設計師 網(wǎng)絡管理員 網(wǎng)絡工程師 系統(tǒng)分析師 數(shù)據(jù)庫系統(tǒng)工程師
            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            ak47  
            【字體: 程序員考試下午試題程序填空解題方法
            程序員考試下午試題程序填空解題方法
            spks.exam8.com 來源:老頑童 更新:2005-5-12 23:46:00 軟件水平考試 考試論壇

                1、理解題目:

              已知條件為兩個鏈表La和Lb,最后得到的結果也是兩個鏈表,只不過是La中的部分結點移動到Lb中,因此,本問題主要是解決是怎么移動的。

                2、算法:

              在題目中沒有給出結點移動的算法,我們先可以結合實例自己設計一個算法,然后看是不是與程序中的算法一致。如果不是,則再找算法。

                實例:

              如圖所示,如果我們找到實線的指針,它們分別指向La中的Key1結點(p指針)、Key1的前一個結點(q指針)、Aj(從Key1結點開始的第len個結點,r指針)和Lb中的Key2的前一個結點(s指針),則根據(jù)鏈表操作,用圖中的虛線指針連接,我們就可以把La中從Key1結點開始的共len個結點全部移動到Lb鏈表中。因此算法大致如下:

             。1)找到p和q指針;

             。2)找到r指針;

             。3)找到s指針;

             。4)r->next=s->next(即把Aj結點連接到K2結點之前);

             。5)s->next=q(即把K1結點連接到原來Lb中K2結點的前一個結點的后面); 

              注意:經(jīng)過(4)、(5)兩步操作,即實現(xiàn)了移動操作。

              (6)要注意的是現(xiàn)在La鏈表已經(jīng)斷開,也必須重新連接上,故要:

              但是注意一下程序,就會發(fā)現(xiàn)里面有很多判斷,主要是看判斷是否可以移動。我們考慮后(也可以看程序)發(fā)現(xiàn),在以下幾種情況下,操作不能進行:

             。1)La或Lb是空鏈表;

             。2)len表示個數(shù)的值,因此不能不大于0;

             。3)La中不存在Key1的結點;

              (4)La中從Key1結點開始的結點個數(shù)小于len個;

             。4)Lb中不存在Key2的結點;

                3、現(xiàn)在主要是看程序結構是不是和我們自己考慮的算法符合。

              程序段(5)~(8):其中有p指針在向后移動,一直到Key1為止,因此,它們的功能就是找到指向Key1結點的指針;同時,另有一個指針prep一直在p的后面,因此它就是指向Key1的前一個結點的指針。

              程序段(10)~(13):其中有一個k變量,每次循環(huán)后增加1,因此它是一個計數(shù)器。通過計數(shù)len次,就可以找到從Key1結點開始的第len個結點。這時,應該有一個指針(q)同時移動,使得這個指針就是指向第len個結點的指針。

              程序段(15)~(18):其中有s指針在向后移動,一直到Key2為止,因此,它們的功能就是找到指向Key2的前一個結點的指針。

              程序段(20)~(22):就是移動La中的結點到Lb,并把La中斷開的鏈表連接。從上述的分析發(fā)現(xiàn),程序結構是和我們自己考慮的算法一致的。

                4、考慮細節(jié),并填空。

              (1)我們的目的是找指向第len個結點的指針,找到后循環(huán)應該結束,因此,要填k 。2)q指針應該同時移動,故應填:q=q->next

             。3)這一段程序的功能是找到指向Key2的前一個結點的指針。其中s指針是指向Key2結點的,而pres指針跟在s后面。但是pres指針缺少初值,因此,這兒應該給pres賦值。故,應填:pres=Lb。

              (4)程序塊(20)、(21)、(22)的功能是移動La中的結點到Lb,并把La中斷開的鏈表連接。根據(jù)鏈表操作的方法,顯然(20)是把La中斷開的鏈表連接,因此,(4)應該填:prep->next;而(21)、(22)是移動La中的結點到Lb,因此,(5)應該填:pres->next。

            上一頁  [1] [2] 

            轉帖于:軟件水平考試_考試吧
            文章搜索  
            看了本文的網(wǎng)友還看了:
            軟件水平考試權威輔導教材: 訂書電話:010-62168566  更多>>>
            網(wǎng)友評論
            昵 稱: *  評 分: 1分 2分 3分 4分 5分
            標題:   匿名發(fā)表    (共有條評論)查看全部評論>>
            版權聲明 -------------------------------------------------------------------------------------
              如果軟件水平考試網(wǎng)所轉載內容不慎侵犯了您的權益,請與我們聯(lián)系,我們將會及時處理。如轉載本軟件水平考試網(wǎng)內容,請注明出處。
            關于本站  網(wǎng)站聲明  廣告服務  聯(lián)系方式  付款方式  站內導航  客服中心  友情鏈接  考試論壇  網(wǎng)站地圖
            Copyright © 2004-2008 考試吧軟件水平考試網(wǎng) All Rights Reserved    
            中國科學院研究生院權威支持(北京) 電 話:010-62168566 傳 真:010-62192699
            百度大聯(lián)盟黃金認證  十佳網(wǎng)絡教育機構  經(jīng)營許可證號:京ICP060677