西南交通大学计算机专业考研真题答案详解0:2018_959_据结构算法与程序设计

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

1.已知某树采用双亲表示法的存储结构进行存储(设树结点的值为整数),请按要求完成如下任务:(14分)

(1)写出该树用双亲表示法时的存储结构定义。(3分)

(2)写出该树用孩子链表表示法时的存储结构定义。(3分)

(3)编写程序将存储在双亲表示法存储结构中的数据存储到孩子链表表示法所对应的存储结构中。(8分)

2.已知某无序整数序列存储在一个双向链表中,请按要求完成如下任务:(16分)

(1)写出双向链表的存储结构定义。(2分)

(2)写出二叉排序树的存储结构定义。(2分)

(3)编写程序将存储在双向链表中的数存储到二叉排序树中,要求转换过程中数存储的结点地址不变。(8分)

(4)对该二叉排序树进行中序遍历,并输出遍历结果。(4分)

真题解析

1.已知某树采用双亲表示法的存储结构进行存储(设树结点的值为整数),请按要求完成如下任务:(14分)

(1)写出该树用双亲表示法时的存储结构定义。(3分)

#define MAX_TREE_SIZE 100
typedef int TElemType;
//定义树结点
typedef struct PTNode {
	TElemType data;
	int parent;//双亲位置域
}PTNode;
typedef struct {
	PTNode nodes[MAX_TREE_SIZE];
	int r, n;//根的位置和结点数
};

(2)写出该树用孩子链表表示法时的存储结构定义。(3分)

#define MAX_TREE_SIZE 100
typedef struct CTNode {
	int child;
	struct CTNode* next;
}*ChildPtr;

typedef int TElemType;
typedef struct {
	TElemType data;
	ChildPtr firstchild;//孩子链表头指针
}CTBox;

typedef struct {
	CTBox nodes[MAX_TREE_SIZE];
	int r, n;
};

(3)编写程序将存储在双亲表示法存储结构中的数据存储到孩子链表表示法所对应的存储结构中。(8分)

2018年考研程序设计第一题:双亲转换为孩子表示法

2.已知某无序整数序列存储在一个双向链表中,请按要求完成如下任务:(16分)

(1)写出双向链表的存储结构定义。(2分)

typedef int ElemType;
typedef struct DuLNode{
	ElemType data;
	struct DuLNode *prior;
	struct DuLNode *next;
}DuLNode, *DuLinkList;

(2)写出二叉排序树的存储结构定义。(2分)

typedef int TElemType;
typedef struct BiTNode {
	TElemType data;
	struct BiTNode *lchild, *rchild;
}BiTNode, *BiTree;

(3)编写程序将存储在双向链表中的数存储到二叉排序树中,要求转换过程中数存储的结点地址不变。(8分)

类似题目:https://blog.csdn.net/shltsh/article/details/46490811,该题是微软算法题。

(4)对该二叉排序树进行中序遍历,并输出遍历结果。(4分)

(3)和(4)的答案:2008年第二考研题:二叉链表转换为二叉树

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

你可能感兴趣的:(考研真题)