1. 程式人生 > >西南交通大學計算機學碩——資料結構真題5:2006年程式與演算法設計題

西南交通大學計算機學碩——資料結構真題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分)

 

 

更多西南交通大學真題,參考:西南交通大學計算機考研——資料結構真題系列

 

更多西南交通大學真題,參考:西南交通大學計算機考研——資料結構真題系列