当前位置:首页 > 数据结构实验-二叉排序树应用实验报告
} }
void InOrder (BiTNode *root){ //中序遍历该二叉排序树 if (!root) return ; //递归结束条件 InOrder (root->lchild); //递归访问左子树 printf (\访问根节点信息 InOrder (root->rchild);//递归访问右子树 }
void Gongneng(BiTNode *A) { int k; char a[30],c[30],d[30];
printf(\请选择你的操作:\\n\printf(\查找\\n\printf(\删除\\n\printf(\插入\\n\printf(\输入:\scanf(\switch(k) {
case 1 : system(\ printf(\请输入你要查找的节点:\ scanf(\
Search(A, c);//调用查找函数 break; case 2: system(\
printf(\请输入你要删除的节点:\scanf(\
if(!DeleteBST(&A,a))
printf(\不存在此节点!\\n\ else {printf(\删除节点成功!\\n\\n删除后树的中序遍历结果如下:\\n\ InOrder(A);}//删除后,进行一次遍历检查删除后的二叉排序树 break; case 3: system(\ printf(\请输入要插入的节点:\ scanf(\
if(!InsertBST(&A,d))
printf(\插入失败!要插入的节点已存在!\\n\else {
printf(\插入成功!\\n\\n插入后树的中序遍历结果如下:\\n\ InOrder(A);//插入成功后,中序遍历该树 }
break;
default : printf(\输入数值错误!\\n\ } }
int main() { BiTNode *A; A = (BiTNode*)malloc(sizeof(BiTNode));//A为根节点 A->lchild = A->rchild= NULL; A->data[0] = ' '; int j,k,m=1; char b[30]; char *s,*t; printf(\请首先创建一棵树并输入要输入的域名个数:\ scanf(\
for(j=0;j s = b; //s指向数组b _strrev(s); //将该字符数组反转 for (; s != '\\0';) { str = strchr(s, '.'); //str为字符串s里面首次出现‘.’的位置 if(str) { i = str - s; ZhongZhuan[i+1]='\\0'; for (; i>=0; i--, s++) { ZhongZhuan[i] = s[0]; //采用倒叙插入,将字符串插入到中转数组里面 } } else { //剩余字符串不含’.’,则中转数组的实际大小为剩余字符串的长度 _strrev(s); i = strlen(s); ZhongZhuan[i + 1] = '\\0'; for (; i >= 0; i--) { } ZhongZhuan[i] = s[i]; // 同样采用倒叙插入的方法为中转数组赋值 } s = '\\0'; InsertBST(&A,ZhongZhuan); //将中转数组的信息插入到树中 } } printf(\中序遍历结果为:\\n\ while(m) { system(\ Gongneng(A); //调用功能函数 printf(\是否继续操作?\\t是-请输入1;否-请输入0\\n\ printf(\输入:\ scanf(\ } system(\ printf(\谢谢使用!\}
共分享92篇相关文档