西南交通大学计算机学硕——数据结构真题5:2006年程序与算法设计题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haimianjie2012/article/details/84317412

更多西南交通大学真题,参考:西南交通大学计算机考研——数据结构真题系列

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分)

更多西南交通大学真题,参考:西南交通大学计算机考研——数据结构真题系列

更多西南交通大学真题,参考:西南交通大学计算机考研——数据结构真题系列

猜你喜欢

转载自blog.csdn.net/haimianjie2012/article/details/84317412