一、步驟
1、理解題意:
主要是根據(jù)問題的描述,確定問題的已知條件,并了解算法(程序)要達到的目的。通俗講,就是要知道問題的輸入和輸出。
2、確定算法:
每個題目在前面都有描述,通過對描述的分析,要確定題目應該屬于哪一類數(shù)據(jù)結構以及相應的算法。有些題目可能不屬于任何數(shù)據(jù)結構,則它可能與某類算法(8類)有關;但也有一些算法純粹是數(shù)學方法。
在描述中同時要理解算法過程。在分析算法時,可以以某個具體實例來試驗。
3、理解程序:
分析程序結構,如果有很多子函數(shù),首先弄清楚各函數(shù)之間的關系和各函數(shù)的作用;如果程序較長,則應該根據(jù)算法過程,把每個程序段與算法的每個過程對應起來,確定相應的程序段功能。
在程序中,已經(jīng)定義了某些變量,則在理解程序時,首先必須理解這些變量的含義。
4、根據(jù)C語言的語法填空。
二、示例
【示例】2004年上半年程序員下午試題試題六
[函數(shù)說明]
函數(shù)DelAInsB(LinkedList La,LinkedList lb,int key1,int key2,int len)的功能是,將線性表A中關鍵碼為keyl的結點開始的len個結點,按原順序移至線性表B中關鍵碼為key2的結點之前,若移動成功,則返回0;否則返回-1。線性表的存儲結構為帶頭結點的單鏈表,La為表A的頭指針,Lb為表B的頭指針。單鏈表結點的類型定義為:
typedef struct node{
int key;
struct node*next;
}*Linkedhist;
[函數(shù)]
(1) int DelllnsB(LinkedLiSt La,LinkedList Lb,int keyl,int key2,int len)
(2) { LinkedList ?p,q,s,prep,pres;
(3) int k;
(4) if (!La->next || !Lb->next || len<=0) return-1;
(5) p = La->next; prep = La;
(6) while (p && p->key != keyl) { /* 查找表A中鍵值為key1的結點 */(7) prep = p;p = p->next;
(8) }
(9) if (!p) return -1; /* 表A中不存在鍵值為key1的結點 */
(10) q = p; k = 1;
(11) while (q && __(1)__) { /* 在表A中找出待刪除的len個結點 */
(12) __(2)__; k++;
(13) }
(14) if (!q) return -1; /* 表A中不存在要被刪除的len個結點 */
(15) s = Lb->next; __(3)__;
(16) while (s && s->key != key2) { /* 查找表B中鍵值為key2的結點 */(17) pres = s; s = s->next;
(18) }
(19) if (!s) return -1; /* 表B中不存在鍵值為key2的結點 */
(20) __(4)__ =q->next; /* 將表A中的len個結點刪除 */
(21) q->next= ??(5) ;
(22) pres->next = p; /* 將len個結點移至表B */
(23) return 0;
(24) }
- 推薦給朋友
- 收藏此頁
·網(wǎng)絡工程師資料:網(wǎng)絡體系結構-軟考網(wǎng)絡類題解 (2008-4-25 14:33:38)
·計算機網(wǎng)絡基礎網(wǎng)絡拓撲結構及優(yōu)缺點分析 (2008-2-22 14:04:32)
·網(wǎng)絡工程師必知:靜態(tài)路由協(xié)議配置方法 (2008-2-22 14:03:39)
·計算機網(wǎng)絡尼奎斯特 香農(nóng)公式例題解析 (2008-2-22 14:02:35)
·軟考復習:因特網(wǎng)IP的分類、尋址規(guī)則及子網(wǎng)掩碼 (2008-2-22 13:57:21)
如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權益,請與我們聯(lián)系,我們將會及時處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請注明出處。