题目详情
当前位置:首页 > 计算机考试 > 初级程序员
题目详情:
发布时间:2024-07-29 02:16:04

[简答题]【说明】
实现连通图G的深度优先遍历(从顶点v出发)的非递归过程。
【算法】
第一步:首先访问连通图G的指定起始顶点v;
第二步:从V出发,访问一个与v (1) p,再从顶点P出发,访问与p (2) 顶点q,然后从q出发,重复上述过程,直到找不到存在 (3) 的邻接顶点为止。
第三步:回退到尚有 (4) 顶点,从该顶点出发,重复第二、三步,直到所有被访问过的顶点的邻接点都已被访问为止。
因此,在这个算法中应设一个栈保存被 (5) 的顶点,以便回溯查找被访问过顶点的未被访问过的邻接点。

更多"【说明】 实现连通图G的深度优先遍历(从顶点v出发)的非递归过程。 "的相关试题:

[简答题]【说明】 实现连通图G的深度优先遍历(从顶点v出发)的非递归过程。 【算法】 第一步:首先访问连通图G的指定起始顶点v; 第二步:从V出发,访问一个与v (1) p,再从顶点P出发,访问与p (2) 顶点q,然后从q出发,重复上述过程,直到找不到存在 (3) 的邻接顶点为止。 第三步:回退到尚有 (4) 顶点,从该顶点出发,重复第二、三步,直到所有被访问过的顶点的邻接点都已被访问为止。 因此,在这个算法中应设一个栈保存被 (5) 的顶点,以便回溯查找被访问过顶点的未被访问过的邻接点。
[单项选择]一个递归的定义可以用递归过程求解,也可以用非递归过程求解,但单从运行时间来看,通常递归过程比非递归过程()。
A. 相同
B. 较慢
C. 较快
D. 无法确定
[简答题]【说明】 本程序利用非递归算法实现二叉树后序遍历。 【函数】 #include<stdio.h> #include<stdlib.h> typedef struct node{/*二叉树的结点数据结构类型*/ char data; struct node *left; struct node *right; }BTREE; void SortTreelnsert(BTREE **tree, BTREE *s) { if(*tree==NULL)*tree=s; else if(s->data<(*tree)->data) SortTreelnsert( (1) ,s); else if(s->data>=(*tree)->data) SortTreelnsert( (2) ,s); } void TraversalTree(BTREE *tree) { BTREE *stack[1 000],*p; int tag[1000],top=0; p=tree; do{ while(p !=NULL) { stack[++top]=p; (3) ; tag[top]=0; /*标记栈顶结点的左子树已进行过后序遍历*/ } while(top>0&& (4) )/*栈顶结点的右子树是否被后序遍历过*/ { p=stack[top--]; putchar(p->data); } if(top>0)/*对栈顶结点的右子树进行后序遍历*/ { (5) ; tag[top]=1; } }while(top>0); } void PrintSortTree(BTREE *tree) { if(tree !=NULL) { printSortTree(tree->left);
[简答题]【说明】
本程序利用非递归算法实现二叉树后序遍历。
【函数】
#include<stdio.h>
#include<stdlib.h>
typedef struct node/*二叉树的结点数据结构类型*/
char data;
struct node *left;
struct node *right;
BTREE;
void SortTreelnsert(BTREE **tree, BTREE *s)

if(*tree==NULL)*tree=s;
else
if(s->data<(*tree)->data)
SortTreelnsert( (1) ,s);
else if(s->data>=(*tree)->data)
SortTreelnsert( (2) ,s);

void TraversalTree(BTREE *tree)

BTREE *stack[1 000],*p;
int tag[1000],top=0;
p=tree;
do
while(p !=NULL)

stack[++top]=p;
(3) ;
tag[top]=0; /*标记栈顶结点的左子树已进行过后序遍历*/

while(top>0&& (4) )/*栈顶结点的右子树是否被后序遍历过*/

p=stack[top--];
putchar(p->data);

if(top>0)/*对栈顶结点的右子树进行后序遍历*/

(5) ;
tag[top]=1;

while(
[单项选择]实现任意二叉树的后序遍历的非递归算法用栈结构,最佳方案是二叉树采用()存储结构。
A. 二叉链表
B. 顺序存储结构
C. 三又链表
D. 广义表存储结构
[单项选择]将一个递归算法改为对应的非递归算法时,通常需要使用 (44)
A. 优先队列
B. 队列
C. 循环队列
D. 栈
[填空题][说明] 假设二叉树采用链式存储方式存储,编写一个后序遍历二叉树的非递归方式。 Void postorder (btree * B) { btree * stack [m0] , *p; int tag [m0], top =0; p=b; do { while (p! =NULL) { top+ +; (1) tag [top] =0; p =p- >left; } if (top >0) { (2) if (tag[top3 = =1) { (3) print ("%d", p- >data); } if(top>0) { (4) tag [top] = 1; } } } while (p! = NULL && top ! =0) }
[简答题]已知深度为h的二叉树采用顺序存储结构已存放于数组BT[1:2h一1]中,请写一非递归算法,产生该二叉树的二叉链表结构。设二叉链表中链结点的构造为(lchild,data,rchild),根结点所在链结点的指针由T给出。
[单项选择]将一个递归算法改为对应的非递归算法时,通常需要使用______。
A. 栈
B. 队列
C. 循环队列
D. 优先队列
[单项选择]

一般情况下,将递归程序转化成为非递归程序应该设置 (1) ,但是消除 (2) 时不需要使用。

2()
A. 直接递归
B. 间接递归
C. 尾递归
D. 递推
[单项选择]

一般情况下,将递归程序转化成为非递归程序应该设置 (1) ,但是消除 (2) 时不需要使用。

1()
A. 堆栈
B. 队列
C. 堆栈或队列
D. 数组
[单项选择]第一步

我来回答:

购买搜题卡查看答案
[会员特权] 开通VIP, 查看 全部题目答案
[会员特权] 享免全部广告特权
推荐91天
¥36.8
¥80元
31天
¥20.8
¥40元
365天
¥88.8
¥188元
请选择支付方式
  • 微信支付
  • 支付宝支付
点击支付即表示同意并接受了《购买须知》
立即支付 系统将自动为您注册账号
请使用微信扫码支付

订单号:

截图扫码使用小程序[完全免费查看答案]
请不要关闭本页面,支付完成后请点击【支付完成】按钮
恭喜您,购买搜题卡成功
重要提示:请拍照或截图保存账号密码!
我要搜题网官网:https://www.woyaosouti.com
我已记住账号密码