从键盘读入一串整数构造一棵二叉排序树,并对得到的二叉排序述进行中序遍历,得到有序序列.要求:该二叉排序树以二叉链表存储

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 01:47:29
从键盘读入一串整数构造一棵二叉排序树,并对得到的二叉排序述进行中序遍历,得到有序序列.要求:该二叉排序树以二叉链表存储

从键盘读入一串整数构造一棵二叉排序树,并对得到的二叉排序述进行中序遍历,得到有序序列.要求:该二叉排序树以二叉链表存储
从键盘读入一串整数构造一棵二叉排序树,并对得到的二叉排序述进行中序遍历,得到有序序列.
要求:该二叉排序树以二叉链表存储

从键盘读入一串整数构造一棵二叉排序树,并对得到的二叉排序述进行中序遍历,得到有序序列.要求:该二叉排序树以二叉链表存储
利用c语言,代码如下仅供参考:
说明:为了保证输入的数据按要求构造出想要的、唯一确定的二叉树的形状,这里输入要求利用广义表的形式,虽然会显得繁琐一点,但足以保证严谨性.否则只是单纯一串数字,树形就能千变万化,不一定的.
#include
#include
#define MaxSize 10
#define Number 30
struct BiTNode{//定义数据结构
char data;
BiTNode *lchild,*rchild;
};
void InitBtree(BiTNode * &BT){//初始化二叉树
BT=NULL;
}
void CreateBiTree(BiTNode *&BT,char *str){//建立二叉树
BiTNode *s[MaxSize];
int top=-1;
BT=NULL;
BiTNode *p=NULL;
int k, j=0;
char ch;
ch=str[j];
while(ch!='\0'){
switch(ch){
case '(':
top++;
s[top]=p;
k=1;
break;
case ')':
top--;
break;
case ',':
k=2;
break;
default:
p=(struct BiTNode *) malloc(sizeof(struct BiTNode));
p->data=ch;
p->lchild=p->rchild=NULL;
if(BT==NULL)
BT=p;
else{
if(k==1)
s[top]->lchild=p;
else
s[top]->rchild=p;
}
}
j++;
ch=str[j];
}
}
void PrintBtree(BiTNode *BT){//输出二叉树
if(BT!=NULL){
putchar(BT->data);
if(BT->lchild!=NULL||BT->rchild!=NULL){
putchar('(');
PrintBtree(BT->lchild);
if(BT->rchild!=NULL)
putchar(',');
PrintBtree(BT->rchild);
putchar(')');
}
}
}
void inorder(BiTNode *BT){//中序遍历二叉树
if(BT!=NULL){
inorder(BT->lchild );
printf("%c ",BT->data);
inorder(BT->rchild );
}
}
void DeleteBtree(BiTNode *BT){//删除二叉树的所有的节点
if(BT!=NULL){
DeleteBtree(BT->lchild );
DeleteBtree(BT->rchild );
free(BT);
}
}
void ClearBtree(BiTNode *&BT){//清除二叉树
DeleteBtree(BT);
BT=NULL;
}
void main(){
BiTNode *BT,*BT1;
char c;
printf("请以广义表形式输入一个二叉数 (如A(B(C,D),E(,F))的形式)\n\n");
char string[Number]="A(B(,C),D(E(F),G(,H)))";
/*char string[Number],ch;
int i=0;
ch=getchar();
while(ch!='\n' && i

从键盘读入一串整数构造一棵二叉排序树,并对得到的二叉排序述进行中序遍历,得到有序序列.要求:该二叉排序树以二叉链表存储 从键盘读入一个整数,判断它是奇数还是偶数 从空树起,依次插入关键字40,8,90,15,62,95,12,23,56,32,构造一棵二叉排序树.(1)画出该二叉排序树(2)画出删去该树中元素值为90的结点之后的二叉排序树. 从键盘读入10个1~100之间的整数:统计小于20的整数的个数,输出结果 并求出所有小于20个整数之和,输出从键盘读入10个1~100之间的整数:统计小于20的整数的个数,输出结果并求出所有小于20个 设有一组初始记录关键字为(45、80、48、40、22、78,要求构造一棵二叉排序树并给出构造过程? 设有一组初始记录关键字为(45,23,65,12,10,35,89,70),要求构造一棵二叉排序树并给出构造过程. 从键盘读入一个整数,判断它是奇数还是偶数6 从键盘输入一个10个整数序列,并用树型结构存储这些整数,使其构造为一棵二叉排序树;根据这个树型,得到这些整数的非递减序列;插入删除:提供一个插入函数,使其在这些整数查找数字“1 用下列插值节点数据,构造Newton插值多项式,并计算N2(0.9),N3(0.9)的值.x-2012f(x)171219要求:所需数据都从键盘读入,最后输出结果. 从空树起,依次插入关键字37,50,42,18,48,12,56,30,23,构造一棵二叉排序树.(1)画出该二叉排序树;(2)画出从(1)所得树中删除关键字为37的结点之后的二叉排序树. C语言:请编写一个程序,从键盘读入两个整数a和n,计算并输出a+aa+aaa+...+aa...a(n个a)的值.非常感谢.急用! C语言提问:从键盘上读入一个非0的整数,统计该数的位数,并倒着输出该数如.输入3784,显示位数为4位,输出4873. 写一个程序,使用for语句,计算从键盘读入的一个整 数序列的和.其中读入的第一个数,表示该整数序列1. 写一个程序,使用for语句,计算从键盘读入的一个整数序列的和.其中读入的第一个数,表示 从键盘上读入长方形的边长a,b,计算它的面积和周长并输出 统计关键字个数从键盘读入一组字符( 用JAVA 编写程序,从键盘读入10个整数存入数组,输出最大值,最小值及它们所在数组中的位置请JAVA高手指导! C语言:从键盘读入一个整数Num,按从小到大的顺序依次输出所有满足条件的3位数:该数各位数字的立方和 定表(40,36,55,6,64,77,9,41),按数据元素在表中的次序构造一颗二叉排序树,并求其平均查找长度.