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

📄 squeue.h

📁 该包是数据结构的实验软件,来源于合肥工业大学人工智能与数据挖掘实验室,用来实现数据结构.
💻 H
📖 第 1 页 / 共 2 页
字号:

 int  SeqQueue_sx1(SeqQueue& L)
     {int SeqQueue_sx1=sx1(L.ag);
     return SeqQueue_sx1; }
 int  SeqQueue_sy1(SeqQueue& L)
     { int SeqQueue_sy1=sy1(L.ag);
     return SeqQueue_sy1;}
  int   SeqQueue_elmnhigh(SeqQueue& L)
     {  int SeqQueue_elmnhigh=elmnhigh(L.ag) ;
	    return SeqQueue_elmnhigh;}
  int SeqQueue_elmnwidth(SeqQueue& L)
     {  int SeqQueue_elmnwidth=elmnwidth(L.ag);
	  return SeqQueue_elmnwidth;
	  }
  void Set_SeqQueue_elmnsize(SeqQueue& L,int hh,int ww)
     {  setelmnsize(L.ag,hh,ww); }

  datatype   SeqQueue_elmn(SeqQueue& L,int i)
     { datatype SeqQueue_elmn=elmn(L.ag,i);
	 return SeqQueue_elmn; }
  void put_SeqQueue_elmn(SeqQueue& L,int i,datatype v,int hl)
     {  put_elmn(L.ag,i,v,hl); }
  boolean  cmp_SeqQueue_elmn(SeqQueue& L,int i,int j,string op,int hl)
     {  boolean cmp_SeqQueue_elmn=cmp_elmn(L.ag,i,j,op,hl) ;
	   return cmp_SeqQueue_elmn;}
  void move_SeqQueue_elmn(SeqQueue& L,int i,int j,int hl)
     {  move_elmn(L.ag,i,j,hl);     }
  void xchg_SeqQueue_elmn(SeqQueue& L,int i,int j,int hl)
     {  xchg_elmn(L.ag,i,j,hl);     }
  void SeqQueue_elmn_ptr_elmn(SeqQueue& L,int i,int hl)
     {  elmn_ptr_elmn(L.ag,i,hl);     }
  void cur_SeqQueue_elmn_onoff(SeqQueue& L,int i)
     {  cur_elmn_onoff(L.ag,i);     }
  void display_SeqQueue_elmn(SeqQueue& L,int  i)
     {  display_GrpArr_elmn(L.ag, i);     }

  void set_SeqQueue_front(SeqQueue& L,int i)
     { L.Front=i;
      display_SeqQueue_front(L); }
  void set_SeqQueue_rear(SeqQueue& L,int i)
     { L.Rear=i;
       display_SeqQueue_rear(L); }

 void inc_SeqQueue_front(SeqQueue& L,int i)
     { L.Front=L.Front+i;
       display_SeqQueue_front(L);
       }
 void inc_SeqQueue_Rear(SeqQueue& L,int i)
     { L.Rear=L.Rear+i;
      display_SeqQueue_rear(L);
      }
  void dec_SeqQueue_front(SeqQueue& L,int i)
     { L.Front=L.Front-i;
       display_SeqQueue_front(L);
       }
  void Dec_SeqQueue_Rear(SeqQueue& L,int i)
     { L.Rear=L.Rear-i;
       display_SeqQueue_rear(L); }

 void handle_SeqQueue_event(pmenunode& pmenu, SeqQueue& L)
   {int  xl=0,yl=0,xr=0,yr=0,randmin=0,randmax=0,dd=0;
    boolean sv;
    int sb1=0,sb2=0,dssb=0,holv=0,agw=0,agh=0;
    unsigned char ss[60]="";

      switch(pmenu->command)
      {

     case  ComInputGrpArr:   input_SeqQueue(L);   break;
     case   ComRandGrpArr:  {  Inputintinwnd(20,4,60,"设置随机数范围, 下限: ",randmin);
			       Inputintinwnd(20,4,60,"设置随机数范围, 上限: ",randmax);
			       rand_SeqQueue(L,randmin,randmax);
			}break;
     case   ComModiGrpArr:  modi_SeqQueue(L); break;
     case   ComReadGrpArr:  load_SeqQueue(L); break;
     case   ComSaveGrpArr:  save_SeqQueue(L); break;
     case   ComSetrange:    set_SeqQueue_range(L); break;
     case   ComDisp:        display_SeqQueue(L);   break;
     case   ComMove1:
			   { Inputstrinwnd(20,3,60,"选择新显示区域 ",ss);
			     SeqQueue_range(L,xl,yl,xr,yr);
			     move1_SeqQueue(L);
			     Clear_range(xl,yl,xr,yr);
			     display_SeqQueue(L);
			}break;
     case   ComMove2:      { Inputstrinwnd(20,4,60,"选择新显示区域 ",ss);
			     move_SeqQueue(L);
		      }break;
     case ComEditsub1GrpArr: { sb1=L.ag.sub1;
			      Editintinwnd(20,4,60,"数组下标下限: ",sb1);
			      if (sb1<L.ag.asub1)
				{
				Error("数据范围错! ");
				}
			      else if (sb1!=L.ag.sub1)
			       { L.ag.sub1=sb1;
				 display_SeqQueue(L);
				 }
			     }break;
     case ComEditsub2GrpArr:     {sb2=L.ag.sub1+L.ag.count-1;
				  Editintinwnd(20,4,60,"数组下标上限: ",sb2);
				  if ( (sb2<L.ag.sub1)||(sb2>L.ag.asub2) )
					Error("数据范围错! ");
				  else if (sb2!=L.ag.sub1+L.ag.count-1)
					{ L.ag.count=sb2-L.ag.sub1+1;
					  display_SeqQueue(L);
					 }
				  }break;
     case ComHorLevGrpArr:     { holv=L.ag.ho_lev;
				 Editintinwnd(20,4,64,"水平或垂直显示:0--垂直显示, 1--水平显示 ",holv);
				 if(! (holv==0||holv==1) )
				     Error("数据范围错! ");
				 else if (L.ag.ho_lev!=holv )
				       { L.ag.ho_lev=holv;
					  setcolor(WHITE);
					    setfillpattern(fillmode,fillcolor);
					    if( L.ag.havefd==true)
					      farfree(L.ag.datafild[L.ag.fdsub]);
					   L.ag.havefd=true;
					   L.ag.fdsub=L.ag.ho_lev;
					   bar(1,1,L.ag.w-2,L.ag.h-2);
					   L.ag.size=imagesize(1,1,L.ag.w-2,L.ag.h-2);
					   L.ag.datafild[L.ag.fdsub]=farmalloc(L.ag.size);
					  getimage(1,1,L.ag.w-2,L.ag.h-2,L.ag.datafild[L.ag.fdsub]);
					  putimage(1,1,L.ag.datafild[L.ag.fdsub],1);
					  L.ag.dx=L.ag.ho_lev*L.ag.w;
					  L.ag.dy=(1-L.ag.ho_lev)*L.ag.h;
					  L.ag.sx=25*(1+L.ag.decinc)+( (getmaxx()-200)*L.ag.ho_lev+ 50 )/2*(1-L.ag.decinc);
					  L.ag.sy=25*(1+L.ag.decinc)+( (getmaxy()-150)*(1-L.ag.ho_lev)+50)/2*(1-L.ag.decinc) ;
					  display_SeqQueue(L);
				       }
				 }break;
     case ComDisSubGrpArr:   {  dssb=L.ag.dsb;
				Editintinwnd(20,4,64,"是否显示下标: 0--不显示下标  1--显示下标 ",dssb);
				if(!(dssb==0||dssb==1) )
				     Error("数据范围错! ");
				else if (dssb!=L.ag.dsb)
				     { L.ag.dsb=boolean(dssb==1);
				      display_SeqQueue(L);
				      }
			      }break;
     case ComDecIncGrpArr:     if(L.ag.dsb==1)
				  {  dd=(L.ag.decinc+1)/2;
				     Editintinwnd(20,4,64,"下标按增或减方向: 0--递减, 1--递增 ",dd);
				     if (! (dd==0||dd==1) )
					{
					  Error("数据范围错! ");
					   return;
					 }
					else if (dd!=(L.ag.decinc+1)/2)
					  {
					  L.ag.decinc=(d_or_i)(2*dd-1);
					  L.ag.sx=25*(1+L.ag.decinc)+( (getmaxx()-200)*L.ag.ho_lev+ 50 )/2*(1-L.ag.decinc);
					  L.ag.sy=25*(1+L.ag.decinc)+( (getmaxy()-150)*(1-L.ag.ho_lev)+50)/2*(1-L.ag.decinc) ;


					display_SeqQueue(L);
				      }
				 }break;
     case ComSetHighGrpArr:      {
				 agh=L.ag.h;
				 Editintinwnd(20,4,60,"设置元素显示高度点数[8..50]: ",agh);
				 if(agh<8||agh>50)
				       Error("数据范围错! ");
				 else if (agh!=L.ag.h)
				       { L.ag.h=agh;
					 setcolor(WHITE);
					    setfillpattern(fillmode,fillcolor);
					    if( L.ag.havefd==true)
					      farfree(L.ag.datafild[L.ag.fdsub]);
					   L.ag.havefd=true;
					   L.ag.fdsub=L.ag.ho_lev;
					   bar(1,1,L.ag.w-2,L.ag.h-2);
					   L.ag.size=imagesize(1,1,L.ag.w-2,L.ag.h-2);
					   L.ag.datafild[L.ag.fdsub]=farmalloc(L.ag.size);
					  getimage(1,1,L.ag.w-2,L.ag.h-2,L.ag.datafild[L.ag.fdsub]);
					  putimage(1,1,L.ag.datafild[L.ag.fdsub],1);
					  L.ag.dx=L.ag.ho_lev*L.ag.w;
					  L.ag.dy=(1-L.ag.ho_lev)*L.ag.h;
					  L.ag.sx=25*(1+L.ag.decinc)+( (getmaxx()-200)*L.ag.ho_lev+ 50 )/2*(1-L.ag.decinc);
					  L.ag.sy=25*(1+L.ag.decinc)+( (getmaxy()-150)*(1-L.ag.ho_lev)+50)/2*(1-L.ag.decinc) ;


					 display_SeqQueue(L);
					 }
				  }break;
     case ComSetWidthGrpArr:    {  agw=L.ag.w;
				   Editintinwnd(20,4,60,"设置元素显示宽度点数[8..70]: ",agw);
				   if(agw<8||agw>70)
				      Error("数据范围错! ");
				   else if (agw!=L.ag.w)
				       { L.ag.w=agw;
				       setcolor(WHITE);
					    setfillpattern(fillmode,fillcolor);
					    if( L.ag.havefd==true)
					      farfree(L.ag.datafild[L.ag.fdsub]);
					   L.ag.havefd=true;
					   L.ag.fdsub=L.ag.ho_lev;
					   bar(1,1,L.ag.w-2,L.ag.h-2);
					   L.ag.size=imagesize(1,1,L.ag.w-2,L.ag.h-2);
					   L.ag.datafild[L.ag.fdsub]=farmalloc(L.ag.size);
					  getimage(1,1,L.ag.w-2,L.ag.h-2,L.ag.datafild[L.ag.fdsub]);
					  putimage(1,1,L.ag.datafild[L.ag.fdsub],1);
					  L.ag.dx=L.ag.ho_lev*L.ag.w;
					  L.ag.dy=(1-L.ag.ho_lev)*L.ag.h;
					  L.ag.sx=25*(1+L.ag.decinc)+( (getmaxx()-200)*L.ag.ho_lev+ 50 )/2*(1-L.ag.decinc);
					  L.ag.sy=25*(1+L.ag.decinc)+( (getmaxy()-150)*(1-L.ag.ho_lev)+50)/2*(1-L.ag.decinc) ;

				       display_SeqQueue(L);
					}
				  }break;
			    }
     }
 void handle_SeqQueue_menu(mymenu& GrpArrmenu1, boolean& selectorno,
			       pmenunode& pmenu, SeqQueue& L)
   {  Mymenu_selectmenu( GrpArrmenu1,pmenu,selectorno);
	if (selectorno)
	 if(Mymenu_issubmenuitem(GrpArrmenu1) )
	       {
		      Mymenu_disabledispsubmenu(GrpArrmenu1,pmenu->numofmenu/100);
		      handle_SeqQueue_event(pmenu,L);
		}
	     else
		 return;
	else return;
    }
 void handle_SeqQueue(SeqQueue& L)
  {mymenu GrpArrmenu2;
   pmenunode   BMp=Newmenu1(
	 Newsubmenu1("设置显示方式",
	    Newmenu1(
	      Newitem1("数组下标下限"," ",0,0,ComEditsub1GrpArr,
	      Newitem1("数组下标上限"," ",0,0,ComEditsub2GrpArr,
	      Newitem1("水平或垂直显示"," ",0,0,ComHorLevGrpArr,
	      Newitem1("是否显示下标"," ",0,0,ComDisSubGrpArr,
	      Newitem1("下标按增或减方向"," ",0,0,ComDecIncGrpArr,
	      Newitem1("设置元素显示高度","Set Elmn High [dots] ",0,0,ComSetHighGrpArr,
	      Newitem1("设置元素显示宽度","Set Elmn width [dots] ",0,0,ComSetWidthGrpArr,
	      nil)))))))),
	 Newsubmenu1("输入数据",
	    Newmenu1(
	      Newitem1("逐个输入数据","Input data from KeyBoard ",0,0,ComInputGrpArr,
	      Newitem1("随机输入数据","Rand data to Array ",0,0,ComRandGrpArr,
	      Newitem1("修改原有数组","Modify Array data ",0,0,ComModiGrpArr,
	      Newitem1("从文件读入数组","Read Array data from file ",0,0,ComReadGrpArr,
	      Newitem1("存盘","Save Array data to file ",0,0,ComSaveGrpArr,
	      nil)))))),
	 Newsubmenu1("显示数组",
	    Newmenu1(
	      Newitem1("设定显示区域"," ",0,0,ComSetrange,
	      Newitem1("按原定位置显示","Display Array ",0,0,ComDisp,
	      Newitem1("平移显示  并清除原位","Move to New Position ",0,0,ComMove1,
	      Newitem1("平移显示  不清除原位","Move to New Position, Keep Old",0,0,ComMove2,
	      nil))))),
	 Newsubmenu1("返回",nil,nil)))));
      Mymenu_init(GrpArrmenu2,BMp);


   do
	  handle_SeqQueue_menu(GrpArrmenu2,selectorno,pmenu,L);

       while(strcmp(pmenu->menuname,"返回") );
	  Mymenu_clearmainmenu(GrpArrmenu2);
	  Mymenu_reset_cursubmenu(GrpArrmenu2);
	  Mymenu_done(GrpArrmenu2);
  }
 void get_SeqQueue(SeqQueue& L)
   { handle_SeqQueue(L); }
#endif




⌨️ 快捷键说明

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