编写一个非递归算法求出二叉搜索树中的关键字最小的元素

是最小

第1个回答  推荐于2016-02-21
int MIN(BSTree *T)// T为根结点指针
{
if (T == NULL)
return -1;// 代表空树
while (T->lchild != NULL)
T = T->lchild;
return T->data;
}追问

需要一个完整的程序

追答

何止需要调用函数和主函数,还有类型声明,构建二叉搜索树等,看看教材就可以完成了

追问

就不能写完整嘛………………

追答

连你要的类型都不知道,写出来的不一样所有的地方都要改,即使这个也还不是要按照你的来修改

本回答被提问者采纳

二叉树先序非递归遍历C语言算法
int gettop(sqstack *s,bitree **e) \/\/去栈顶元素 注意top指向的是栈顶的后一个{if(s->top==s->base) return 0; \/\/所以 s->top-1 *e=*(s->top-1); return 1;}\/*---非递归---先序建立二叉树---*\/bitree *createprebitree(){char ch;bitree *ht,*p,*q; sqstack *s; s=...

如何用非递归算法求二叉树的高度
return0;intfront=-1,rear=-1;//front出队指针 rear入队指针intlast=0,level=0;//last每一层的最右指针 (front==last时候一层遍历结束level++)BiTreeQ[Maxsize];//模拟队列Q[++rear]=T;BiTreep;while(front<rear){ p=Q[++front];//开始出队 因为front...

...请写出计算二叉树中度为2的结点数目的非递归算法
push(ST,root)while(not empty(ST)){ node=pop(ST)if(node->left)push(ST,node->left)if(node->right)push(ST,node->right)} 上面的伪代码实际上就是图的深度遍历,二叉树算是一种特殊的图。具体的写法可以搜索一下就可以找到。

设二叉树以二叉链表为存储结构,编写一个后续遍历二叉树的非递归算法
include <stdio.h> include <malloc.h> include <stdlib.h> define STACK_INT_SIZE 100 define STACKINCREMENT 10 define OK 1 define ERROR 0 define TRUE 1 define FALSE 0 define OVERFLOW -2 typedef char TElemType;typedef int Status;typedef char SElemType;typedef struct BiTNode { TElemType...

编写非递归算法,求二叉树中叶子结点的个数
typedef struct _btree { int v;struct _btree* l;struct _btree* r;} *node;\/\/ . . . .int count_nodes(node root){ node a[100];node* p = a;node t;int n = 0;p++ = root;while(p != a) { t = *--p;++n;if(t->l) *p++ = t->l;if(t->r) *p++ = t-...

二叉树的深度算法怎么算啊
二叉树的深度算法:一、递归实现基本思想:为了求得树的深度,可以先求左右子树的深度,取二者较大者加1即是树的深度,递归返回的条件是若节点为空,返回0 算法:1 int FindTreeDeep(BinTree BT){ 2 int deep=0;3 if(BT){ 4 int lchilddeep=FindTreeDeep(BT->lchild);5 int rchilddeep=Find...

设计非递归算法,利用平衡因子求二叉平衡树的高度
小于1就选右节点,等于0终止。使用while循环就可以了,循环结束时的循环次数就是树的高度。int loop=0;当前节点=根节点 while(true){ loop++;if(当前节点的平衡因子>0){当前节点=左子树} else if(当前节点的平衡因子<0){当前节点=右子树} else {退出循环} } loop就是树高度 ...

假设二叉树采用二叉链表作为存储结构,试编写一个算法:求任意一个指定结...
非递归中序遍历 构造变量count记录当前层访问到的节点数,nextcount记录当前层的总个数;每当访问过一层层数depth++;此种方法同时可以求最大宽度,访问第几层的第几个节点,求带权路径长度WPL,是一种通用方法!int TreeDepth(TreeNode* pRoot){queueq;q.push(pRoot);if(pRoot==NULL)return 0;...

跪求!!10分奉上!统计二叉树结点个数的算法 非递归
下面来看一下关于统计二叉树结点个数的非递归算法设计:1、将根结点插入队列。2、判断队列是否为空,非空执行第三步,否则执行第四步退出循环。3、从队列中取出一个结点,同时将取出结点的儿子结点插入队列。此外,将计数器加1,再转到第二步。4、结束循环。注意:队列是先进先出的结构,与栈相反。...

数据结构的中序遍历二叉树的结点的非递归算法
如图

相似回答