更多西南交通大学真题,参考:西南交通大学计算机考研——数据结构真题系列
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 = head->next;
while (p1 != NULL)
{
p2 = p1->next;
p1->next =head;
head = p1;
p1 = p2;
}
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分)
typedef struct
{
Elemtype *p;
int maxlength;
};
B) 用高级语言描述学生项(数据元素)的类型定义:(2分)
typedef struct Student
{
char name[10];
float score;
int addr;
};
C) 用高级语言描述完整哈希表的存储结构定义:(3分)
typedef struct
{
Elemtype *p;
int maxlength;
struct Student sT;
}HashTable;
D) 在下表的基础上,采用什么方法解决冲突?(1分)
线性探测再散列
E) 写出在哈希查找表中插入一个数据元素的算法(注意冲突的解决):(3分)
F) 假设哈希查找表初始化为空表,依次插入如下姓名的数据元素:
LiPin, WangLin, Zhaogang, Wuxing, Luohao, Zongyong, wengkai, Luoyang
画出插入八个数据元素后的哈希查找表及内容。(3分)
更多西南交通大学真题,参考:西南交通大学计算机考研——数据结构真题系列