西南交通大學計算機學碩——資料結構真題5:2006年程式與演算法設計題
更多西南交通大學真題,參考:西南交通大學計算機考研——資料結構真題系列
3、已知單向連結串列節點結構為:
編寫一個函式:struct MyNode* ChangeHead(struct MyNode *pHead),其中形參pHead為連結串列的頭指標,該函式將連結串列的鏈頭當鏈尾,鏈尾當鏈頭,其餘結點的次序不變,並返回新的頭指標。
4、
編寫程式,從鍵盤輸入一個文字檔名和一個單詞,統計在檔案中有多少個單詞。
注意:此處的“單詞”指有空格或換行符隔開的連續的字串,而不管它是否有實際意義:此外,對於英文字母不區分大小寫。
如:輸入的單詞是:abc 而檔案內容如下(2行):
則:你的輸出應該是1。
5、編寫兩個遞迴演算法,分別計算二叉樹葉子節點的數目,二叉樹的深度。(6分)
6、設有如下雜湊查詢表:學生庫採用順序儲存結構,長度為maxlength,p為順序儲存結構的一個下標變數,總是指向下一個可用空間,初始值為1;雜湊對映表長度為26,分量型別與p型別相同。雜湊函式假設為學生姓名的品應首字母在字母表中的位序(a的位序為0,z的位序為25);在雜湊查詢表中插入一個學生資料元素時,總是插入到p所指向可用空間中,p加1後再次指向下一可用空間。
請完成:
A) 用高階語言描述雜湊對映表的儲存結構定義:(1分)
B) 用高階語言描述學生項(資料元素)的型別定義:(2分)
C) 用高階語言描述完整雜湊表的儲存結構定義:(3分)
D) 在下表的基礎上,採用什麼方法解決衝突?(1分)
E) 寫出在雜湊查詢表中插入一個數據元素的演算法(注意衝突的解決):(3分)
F) 假設雜湊查詢表初始化為空表,依次插入如下姓名的資料元素:
LiPin, WangLin, Zhaogang, Wuxing, Luohao, Zongyong, wengkai, Luoyang
畫出插入八個資料元素後的雜湊查詢表及內容。(3分)
真題解析:
3、已知單向連結串列節點結構為:
struct MyNode
{
int data;
MyNode* next;
};
編寫一個函式:struct MyNode* ChangeHead(struct MyNode *pHead),其中形參pHead為連結串列的頭指標,該函式將連結串列的鏈頭當鏈尾,鏈尾當鏈頭,其餘結點的次序不變,並返回新的頭指標。
MyNode* ChangeHead(struct MyNode *head) { if((head==NULL) ||(head->next == NULL)) return head; MyNode *p1,*p2; p1 = NULL; while(head!=NULL) { p2 = head->next; head->next = p1; p1 = head; head = p2; } head = p1; return head; }
4、
編寫程式,從鍵盤輸入一個文字檔名和一個單詞,統計在檔案中有多少個單詞。
注意:此處的“單詞”指有空格或換行符隔開的連續的字串,而不管它是否有實際意義:此外,對於英文字母不區分大小寫。
如:輸入的單詞是:abc 而檔案內容如下(2行):
則:你的輸出應該是1。
5、編寫兩個遞迴演算法,分別計算二叉樹葉子節點的數目,二叉樹的深度。(6分)
計算二叉樹的葉子節點
int Count(BiTree * top){ if(top == NULL){ return 0; } else if ((top->lchild==NULL) && (top->rchild==NULL)){ return 1; } else{ return Count(top->lchild)+Count(top->rchild); } }
深度
int Heigh(BTNode* btree)
{
if (btree == NULL)
{
return 0;
}
int lheight, rheight;
lheight = Heigh(btree->lchild);
rheight = Heigh(btree->rchild);
if (lheight>rheight)
{
return lheight + 1;
}
else {
return rheight + 1;
}
}
類似考法:2013年四題第一問,2012年第四題,2008年第四題
6、設有如下雜湊查詢表:學生庫採用順序儲存結構,長度為maxlength,p為順序儲存結構的一個下標變數,總是指向下一個可用空間,初始值為1;雜湊對映表長度為26,分量型別與p型別相同。雜湊函式假設為學生姓名的品應首字母在字母表中的位序(a的位序為0,z的位序為25);在雜湊查詢表中插入一個學生資料元素時,總是插入到p所指向可用空間中,p加1後再次指向下一可用空間。
請完成:
A) 用高階語言描述雜湊對映表的儲存結構定義:(1分)
B) 用高階語言描述學生項(資料元素)的型別定義:(2分)
C) 用高階語言描述完整雜湊表的儲存結構定義:(3分)
D) 在下表的基礎上,採用什麼方法解決衝突?(1分)
E) 寫出在雜湊查詢表中插入一個數據元素的演算法(注意衝突的解決):(3分)
F) 假設雜湊查詢表初始化為空表,依次插入如下姓名的資料元素:
LiPin, WangLin, Zhaogang, Wuxing, Luohao, Zongyong, wengkai, Luoyang
畫出插入八個資料元素後的雜湊查詢表及內容。(3分)
更多西南交通大學真題,參考:西南交通大學計算機考研——資料結構真題系列
更多西南交通大學真題,參考:西南交通大學計算機考研——資料結構真題系列