⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 5.cpp

📁 用c实现的二叉树的中序遍历的读取与存储
💻 CPP
字号:
#include<iostream.h>
#include<conio.h>
#include"bst5.h"
#include"BinNodePtr1.h"
#include"stdio.h"
int b[200];
void save()
{
   FILE *fp;
  int i;
  char infile[10];
  cout<<"输入文件名:\n";
  scanf("%s",infile);
  if((fp=fopen(infile,"w+"))==NULL)
  {
     cout<<"不能打开文件\n";
     return;
  }
  for(i=0;i<200;i++)
    if(fwrite(&b[i],4,1,fp)!=1)
    cout<<"文件保存错误\n";
}
void load()
{
  FILE *fp;
  int i;
  char outfile[10];
  cout<<"输入文件名:\n";
  scanf("%s",outfile);
  if((fp=fopen(outfile,"r+"))==NULL)
  {cout<<"不能打开文件\n";return;
  }
  for(int i=0;i<200;i++)
  if(fread(&b[i],4,1,fp)!=1)
  {
    if(feof(fp))return;
    cout<<"文件打开错误\n";
  }
}
main()
{
  BinNodePtr1* relroot=NULL;
  BST5 playbst;
  int e;
  int choose;
  menu1:
     { clrscr();
       gotoxy(18,5);cout<<"1新建二插查找树"<<endl;
       gotoxy(18,6);cout<<"2打开文件"<<endl;
       gotoxy(18,7);cout<<"3退出"<<endl;
       gotoxy(18,8);cout<<"输入你的选择:";
       cin>>choose;
       if(choose==1)
       goto menu2;
       else if(choose==2)
       goto menu3;
       else goto end;
     }
  menu2:
     { clrscr();
       gotoxy(18,4);cout<<"1插入结点"<<endl;
       gotoxy(18,5);cout<<"2删除二插查找树"<<endl;
       gotoxy(18,6);cout<<"3删除某一结点"<<endl;
       gotoxy(18,7);cout<<"4删除最小结点"<<endl;
       gotoxy(18,8);cout<<"5查找某一结点"<<endl;
       gotoxy(18,9);cout<<"6二插查找树的总结点数"<<endl;
       gotoxy(18,10);cout<<"7打印二插查找树"<<endl;
       gotoxy(18,11);cout<<"8保存二插查找树"<<endl;
       gotoxy(18,12);cout<<"9返回"<<endl;
       gotoxy(18,13);int choose1;cin>>choose1;
       switch(choose1)
       {
         case 1:
                  {
                      clrscr();
                      gotoxy(18,4);cout<<"输入结点值,按0退出:";
                      gotoxy(18,5);cin>>choose1;
                      while(choose1!=0)
                      {  cout<<"输入结点值,按0退出:";
                         playbst.insert(relroot,choose1);
                         cin>>choose1;
                      }
                      goto menu2;
                  } break;
         case 2: clrscr();playbst.clear(relroot);goto menu2;break;
         case 3:
                  {
                      clrscr();
                      gotoxy(18,4);cout<<"输入要删除的结点,按0退出:";
                      gotoxy(18,5);cin>>choose1;
                      while(choose1!=0)
                      {
                         playbst.remove(relroot,choose1,e);
                         gotoxy(18,4);cout<<"输入要删除的结点,按0退出:";
                         gotoxy(18,5);cin>>choose1;
                      }
                      goto menu2;
                  }break;
         case 4: {playbst.removeAny(relroot,e);goto menu2;}break;
         case 5:
                 {
                    cout<<"输入要找的结点值:";
                    cin>>choose1;
                    if(playbst.find(relroot,choose1,e))
                       cout<<"找到";
                    else
                       cout<<"没找到";
                    getch();
                    goto menu2;
                 }break;
         case 6:
                 {
                    clrscr();gotoxy(18,4);
                    cout<<"二插查找树的大小为"<<playbst.size();
                    getch();
                    goto menu2;
                 }break;
         case 7: {
                    clrscr();
                    playbst.print(relroot,0);
                    getch();
                    goto menu2;
                 }break;
         case 8: { clrscr();
                   playbst.ccbl(relroot);
                   playbst.shuzhu(b);
                   save();
                   playbst.clear(relroot);
                   goto menu2;
                 }break;
         case 9: playbst.clear(relroot);break;

       }
       goto menu1;
     }
  menu3:
     { clrscr();
       gotoxy(18,5);
       load();
       for(int i=0;b[i]!=0&&i<200;i++)
          playbst.insert(relroot,b[i]);
       clrscr();
       playbst.print(relroot,0);
       getch();
       clrscr();
       goto menu2;
     }
     getch();
     clrscr();

     end:
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -