设一棵二叉树的存储表示是二叉链表,编写一个用逆转链方法实现二叉树前序遍历的算法。这个方法
以二叉链表作为二叉树的存储结构,编写以下算法:
(1)统计二叉树的叶结点个数。
(2)设计二叉树的双序遍历算法(双序遍历是指对于二叉树的每一个结点来说,先访问这个结点,再按双序遍历它的左子树,然后再一次访问这个结点,接下来按双序遍历它的右子树)。
(3)计算二叉树最大的宽度(二叉树的最大宽度是指二叉树所有层中结点个数的最大值)。
(4)用按层次顺序遍历二叉树的方法,统计树中具有度为1的结点数目。
(5)求任意二叉树中第一条最长的路径长度,并输出此路径上各结点的值。
(6)输出二叉树中从每个叶子结点到根结点的路径。
写出用广义表表示法表示的树的类声明,并给出如下成员函数的实现:
(1)operator>>()接收用广义表表示的树作为输人,建立广义表的存储表示;
(2)复制构造函数用另一棵表示为广义表的树初始化棵树;
(3)operator==()测试用广义表表示的两棵树是否相等
(4)operator<<()用广义表的形式输出一棵树;
(5)析构函数清除一棵用广义表表示的树。
设S表示某人拥有的所有的树的集合,M,N,T,PS,且M是珍贵的树的集合,N是果树的集合,T是去年刚栽的树的集合,P是在果园中的树的集合,下面是3个前提条件和2条结论。
前提:(1)所有的珍贵的树都是去年裁的。
(2)所有的果树都在果园里。
(3)果园里没有去年栽的树。
结论:(1)所有的果树都是去年栽的。
(2)没有一棵珍贵的树是果树。
则前提(1),(2),(3)和结论(1)的集合表达式分别为,根据前提条件,两个结论中正确的是。
设计一个名为Stock的类表示股票,该类包括:
一个名为symbol的字符串数据域表示股票代码;
一个名为name的字符串数据域表示股票名称;
一个名为previousPrice的double型数据域,用来存储股票的前一日收盘价;
一个名为currentPrice的double型数据域,用来存储股票的当前价格;
创建一个给定特定代码和股票名称的构造方法;
一个名为getChangePercent()的方法。返回从前一日价格到当前价格变化的百分比。
画出该类的UML图并实现这个类。编写一个测试程序,创建一个Stock对象,它的股票代码是600000,股票名称是“浦发银行",前一日收盘价是25.50,当前的最新价是28.6,显示市值变化的百分比。
假设在算法描述语言中引入指针的二元运算“异或”,若a和b为指针,则的运算结果仍为原指针类型,且
则可利用一个指针域来实现双向链表L。链表L中的每个结点只含两个域:data域和LRPtr域,其中L RPtr域存放该结点的左邻与右邻结点指针(不存在时为NULL) 的异或。若设指针L.Left指向链表中的最左结点,L.Right指向链表中的最右结点, 则可实现从左向右或从右向左遍历此双向链表的操作。试写一算法按任一方向依次输出链表中各元素的值。
设一平面薄板(不计其厚度),它在xy平面上的表示是由光滑的简单闭曲线围成的闭区域D。如果该薄板分布有面密度为的电荷,且在D上连续,试用二重积分表示该薄板上的全部电荷。