问题 单项选择题

将空间上不同地区和不均匀分布的、时间上不同时刻断续观测的各种常规和非常规气象资料利用数值预报模式进行综合处理,从而获取数值预报模式所需要的比较理想的初值。这方法叫做()。

A.谱方法

B.四维同化

C.变分法

D.有限元法

答案

参考答案:B

单项选择题
问答题

【说明】
一般的树结构常采用孩子一兄弟表示法表示,即用二叉链表代表树的存储结构,链表中节点的两个链域分别指向该节点的第一个孩子节点和下一个兄弟节点,例如,如图5-9(a)所示的树和如图5-9(b)所示的树的孩子一兄弟表示。


函数LevelTraverse()的功能是对给定树进行层序遍历。例如,对如图5-9所示的树进行层序遍历时,节点的访问次序为DBAEFPC。
对树进行层序遍历时使用了队列结构,实现队列基本操作的函数原型如表5-12所示。
表5-12 实现队列基本操作的函数原型表

函 数 原 型说 明
 void InitQueue(Queue *Q) 初始化队列
 Bool IsEmpty(Queue *Q) 判断队列是否为空,若是则返回true,否则返回alse
 void EnQueue(Queue *Q, TreeNode p) 元素入队列
 void DeQueue(Queue *Q, TreeNode *p) 元素出队列
Bool、Status类型定义如下:
typedef enum{FALSE=0, TRUE=1}Bool;
typedef enum{OVERFLOW=-2, UNDERFLOW=-1, ERROR=0, OK=1)Status;
树的二叉链表节点定义如下:
typedef struct N6de{
char data;
struct Node *firstchild, *nextbrother;
}Node, *TreeNode;
【C函数程序】
Status LevelTraverse(TreeNode root){
/*层序遍历树,树采用孩子一兄弟表示法,root是树根节点的指针*/
Queue tempQ;
TreeNode ptr, brotherptr;
if(!root)
return ERROR;
InitQueue(&tempQ);
(1) ;
brotherptr=root->nextbrother;
while(brotherptr)(EnQueue(&tempQ, brotherptr);
(2) ;
} /*end-while*/
while( (3) ){
(4) ;
Printf("%c\t", ptr->data);
if( (5) ) continue;
(6) ;
brotherptr=ptr->firstchiid->nextbrother;
while(brotherptr){
EnQueue(&tempQ, brotherptr);
(7) ;
} /*end-while*/
}/*end-while*/
return OK;
} /*LevelTraverse*/