没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
14页
西南交大;西南交通大学;数据结构;赵宏宇;1. 写算法 (1) 已知二叉树(二叉链表)根结点指针为bt,求该二叉树中的叶子数目。 (2) 已知某二叉树(三叉链表)的根结点地址root,该树中各结点的左、右儿子指针域已正确填充,写一个算法将所有结点的双亲指针域正确填充。 (3) 已知某二叉树(二叉链表)的根结点指针bt。编写算法,将该二叉树中所有结点的左右子树互换。 (4) 已知n个结点的完全二叉树结点数据域值按结点编号次序顺序存于一维数组(元素下标范围0..n-1)。编写算法,由该数组首地址以及数组长度n建立对应的二叉链表存储结构。 2. 上机题 (1) 编写完整程序,用先序遍历法建立二叉树的二叉链表存储结构,要求结点data域值类型为int。输入的先序遍历整数序列用0表示NULL指针域,其它有效结点的data域值均不等0。定义三个算法函数,分别计算并输出二叉树中结点data域值的最大值、结点data域值之和以及data域值小于0的结点数。 (2) 从键盘输入n个数据建立n元完全二叉树顺序存储结构。实现该完全二叉树的先、中、后序遍历。
资源推荐
资源详情
资源评论
数据结构第 3 次作业
学号:******* 姓名:******* 专业:*******
知识范畴:数组与广义表、二叉树(一)
提交截止日期:*******
作业内容:
一、数组与广义表
习题集
5.1 5.5 5.7 5.10
上机编程题
习题集 5.19
二、二叉树(一)
1. 写算法
(1) 已知二叉树(二叉链表)根结点指针为 bt,求该二叉树中的叶子数目。
(2) 已知某二叉树(三叉链表)的根结点地址 root,该树中各结点的左、右儿子指针域已
正确填充,写一个算法将所有结点的双亲指针域正确填充。
(3) 已知某二叉树(二叉链表)的根结点指针 bt。编写算法,将该二叉树中所有结点的左
右子树互换。
(4) 已知 n 个结点的完全二叉树结点数据域值按结点编号次序顺序存于一维数组(元素下
1 / 14
评分
满分—3 分
标范围 0..n-1)。编写算法,由该数组首地址以及数组长度 n 建立对应的二叉链表存储
结构。
2. 上机题
(1) 编写完整程序,用先序遍历法建立二叉树的二叉链表存储结构,要求结点 data 域值类
型为 int。输入的先序遍历整数序列用 0 表示 NULL 指针域,其它有效结点的 data 域值
均不等 0。定义三个算法函数,分别计算并输出二叉树中结点 data 域值的最大值、结
点 data 域值之和以及 data 域值小于 0 的结点数。
(2) 从键盘输入 n 个数据建立 n 元完全二叉树顺序存储结构。实现该完全二叉树的先、中、
后序遍历。
作业解答:
一、数组与广义表
习题集
5.1
(1)数组 A 的体积为:6 * 8 * 6 = 288 byte
(2)最后一个元素 a
57
的第一个字节的地址为:6 * 6 * 7 + 1000 = 1282
(3)按行存储时,a
14
的第一个字节的地址为:6 * 8 * 1 + 6 * 4 + 1000 = 1072
(4)按列存储时,a
47
的第一个字节的地址为:6 * 6 * 7 + 6 * 4 + 1000 = 1276
5.5
(下标从 1 开始)
k =¿+ j−
i
(
i−1
)
2
−n−1
2 / 14
f
1
(
i
)
=
(
n+
1
2
)
i−
1
2
i
2
f
2
(
j
)
= j
c=−n−1
5.7
(下标从 1 开始)
(1)
k =2
(
i−1
)
+ j−1
(2)
i=
k +1
3
+1
j=
(
k +1
)
−
2 k
3
5.10
(1)p
(2)(k,p,h)
(3)(a,b)
(4)((c,d))
(5)(c,d)
(6)(b)
(7)b
(8)(d)
上机编程题
习题集 5.19
源代码:
#include <iostream>
#include <iomanip>
using namespace std;
#define N 10
#define M 10
int main()
3 / 14
剩余13页未读,继续阅读
Yintel12138
- 粉丝: 5
- 资源: 15
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
前往页