深夜成人在线,chinese国产一区二区,欧美精品乱码,日韩欧美在线视频免费观看,国产午夜不卡,日韩av影院在线,五月天婷婷国产精品

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

閱讀以下說明和C 函數(shù),將應(yīng)填入 (n) 處的字句寫在答題紙的對應(yīng)欄內(nèi)。
【說明】
    已知某二叉樹的非葉子結(jié)點都有兩個孩子結(jié)點,現(xiàn)將該二叉樹存儲在結(jié)構(gòu)數(shù)組 Ht中。結(jié)點結(jié)構(gòu)及數(shù)組Ht的定義如下:
#define MAXLEAFNUM 30
struct node{
char ch; /*當(dāng)前結(jié)點表示的字符,對于非葉子結(jié)點,此域不用*/
char *pstr; /*當(dāng)前結(jié)點的編碼指針,非葉子結(jié)點不用*/
int parent; /*當(dāng)前結(jié)點的父結(jié)點,為0時表示無父結(jié)點*/
int lchild,rchild;
/*當(dāng)前結(jié)點的左、右孩子結(jié)點,為0時表示無對應(yīng)的孩子結(jié)點*/
};
struct node Ht[2 * MAXLEAFNUM]; /*數(shù)組元素Ht[0]不用*/
該二叉樹的n個葉子結(jié)點存儲在下標(biāo)為1~n的Ht數(shù)組元素中。例如,某二叉樹如圖3-1所示,其存儲結(jié)構(gòu)如圖3-2所示,其中,與葉子結(jié)點a對應(yīng)的數(shù)組元素下標(biāo)為1,a 的父結(jié)點存儲在 Ht[5],表示為 Ht[1].parent=5。Ht[7].parent=0 表示 7 號結(jié)點是樹根,Ht[7].lchild=3、Ht[7].rchild=6 分別表示 7 號結(jié)點的左孩子是 3號結(jié)點、右孩子是 6 號結(jié)點。

如果用“0”或“1”分別標(biāo)識二叉樹的左分支和右分支(如圖 3-1 所示),從根結(jié)點開始到葉子結(jié)點為止,按所經(jīng)過分支的次序?qū)⑾鄳?yīng)標(biāo)識依次排列,可得到一個 0、1序列,稱之為對應(yīng)葉子結(jié)點的編碼。例如,圖3-1中a、b、c、d的編碼分別是100、101、0、11。
函數(shù)LeafCode(Ht[],n)的功能是:求解存儲在Ht中的二叉樹中所有葉子結(jié)點(n個)的編碼,葉子結(jié)點存儲在Ht[1]~Ht[n]中,求出的編碼存儲區(qū)由對應(yīng)的數(shù)組元素pstr域指示。
函數(shù)LeafCode從葉子到根逆向求葉子結(jié)點的編碼。例如,對圖3-1中葉子結(jié)點a求編碼的過程如圖3-3所示。

typedef enum Status {ERROR, OK} Status;
【函數(shù)】
    Status LeafCode(struct node Ht[], int n)
{
int pc, pf; /*pc用于指出樹中的結(jié)點,pf則指出pc所對應(yīng)結(jié)點的父結(jié)點*/
int i,start;
char tstr[31] = {‘\0’}; /*臨時存儲給定葉子結(jié)點的編碼,從高下標(biāo)開始存入*/
for(i=1;(1) ; i++) { /*對所有葉子結(jié)點求編碼,i表示葉結(jié)點在HT數(shù)組中的下標(biāo)*/
start = 29;
pc = i; pf = Ht[i].parent;
while (pf != (2) ) { /*沒有到達(dá)樹根時,繼續(xù)求編碼*/
if ( (3) .lchild == pc ) /*pc所表示的結(jié)點是其父結(jié)點的左孩子*/
   tstr[--start] = ‘0’;
else
tstr[--start] = ‘1’;
pc = (4) ; pf = Ht[pf].parent; /*pc和pf分別向根方向回退一層*/
}/* end of while */
Ht[i].pstr = (char *) malloc(31-start);
if (!Ht[i].pstr) return ERROR;
strcpy(Ht[i].pstr, (5) );
}/* end of for */
return OK;
}/* end of LeafCode */


相關(guān)試題

推薦文章
合作網(wǎng)站內(nèi)容