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

📄 emp8_18.cpp

📁 该包是数据结构的实验软件,来源于合肥工业大学人工智能与数据挖掘实验室,用来实现数据结构.
💻 CPP
字号:
#include"grary1.h"
const int n=15,   NilP=0,   hhl=30, nhl=20;

	  int i,Head,Null;
	   ArrPtr HeadP,NullP;
	   GrpArr ag;

   int   next(GrpArr& ,int i)
	 { int next=elmn(ag,i) ;
	   return next;
	}
   void  disp_links(GrpArr& ag,int hd,int hl)
      {
	 int   p;
	 p=hd;
	 while (p!=NilP)
	      {   if (next(ag,p)<p)
			  elmn_ptr_elmn(ag,p,-hl);
			else
			  elmn_ptr_elmn(ag,p,hl);
		      p=next(ag,p);
	       }
      }
   void  Disp_Static_LList(GrpArr& ag,int head)
     {
	  int i,x1,y1,x2,y2;
	  GrpArr_range(ag,x1,y1,x2,y2);
	  Clear_range(x1-30,y1-30,x2+30,y2+30);
	  display_GrpArr(ag);
	  disp_links(ag,Head,hhl);
	  disp_links(ag,Null,nhl);
	  Arrptr_point_to(NullP,ag,Null);
	  Arrptr_point_to(HeadP,ag,Head);
     }
  void  NewP(int& P)
     { if  (Null==NilP)
	     Error("No memory");
       else
	    { P=Null;
	      Null=next(ag,Null);
	    }
    }
   void  DisposeP(int& P)
      {
	put_elmn(ag,P,Null,0);
	Null=P;
	}
   int   Get_Elmn( GrpArr& ag,int head,int i)
     {   int Get_Elmn;
	 int  j,jp;
	 jp=Head;
	 j=1;
	 while ( (j!=i)&&(jp!=NilP) )
	   {
	    jp=next(ag,jp);
	    j=j+1;
	    }
	 Get_Elmn=jp;
	return Get_Elmn;
     }
   void  SetNull_Static_LList( GrpArr& ag,int&  head)
     {int  i;
	    clear_GrpArr(ag);
	    for (i=1;i<=n-1;i++)
		put_elmn(ag,i,i+1,0);
	    head=NilP;
	    Null=1;
     }
   void  Insert_Static_LList( GrpArr& ag,int& head,int  i,int x)
    {
      int  p,q;
      if (i==1)
	  {
	   NewP(q);
	   put_elmn(ag,q,head,0);
	   head=q;
	   }
      else
	   {
	      p=Get_Elmn(ag,head,i-1);
	      if (p==NilP)
			 Error("No. error");
	      else
		 {
			 NewP(q);
			 put_elmn(ag,q,next(ag,p),0);
			 put_elmn(ag,p,q,0);
		 }
	    }
    }
   void  Delete_Static_LList(GrpArr& ag,int&  head,int& x)
     {
	 int  p,q;
	 if (head==NilP)
		Error("no data to delete");
	  else
	       if (i==1)
		     { q=head;
		       head=elmn(ag,q);
		       DisposeP(q);
		     }
	      else
		      {
		       p=Get_Elmn(ag,head,i-1);
		       if ( (p==NilP)||(next(ag,p)==NilP) )
			     Error("No. error");
		       else
			  {
			    q=next(ag,p);
			    put_elmn(ag,p,next(ag,q),NilP);
			    DisposeP(q);
			   }

		   }
	 }


     main()
     {
	   bb1 b;
	   int i,j,sele,x;
	   char ch;
	   create_grp_Arrbb(ag,HorOrLev(1),(d_or_i)1,true,b,"Static LList",1,n);
	   initial_GrpArr(ag);
	   move_GrpArr_mid(ag,getmaxx()/2,getmaxy()/2);
	   create_arrptr(HeadP,"head",ag,-40);
	   create_arrptr(NullP,"NullP",ag,40);

	   SetNull_Static_LList(ag,Head);
	   Disp_Static_LList(ag,Head);
	  do
	   {
	     Inputintinwnd(10,3,50,"1: insert, 2:delete, 0: quit: ",sele);
		 switch(sele)
		{
		case  1:  {
			     Inputintinwnd(10,4,50,"No. of insert: ",i);
			     Inputintinwnd(10,5,50,"Data to insert: ",x);
			     Insert_Static_LList(ag,Head,i,x);
			  } break;
		case  2:  {
			   Inputintinwnd(20,4,50,"data to delete: ",i);
			   Delete_Static_LList(ag,Head,i);
			   };break;
		case  0:   break;
	       }
	       Disp_Static_LList(ag,Head);
	    }
	  while(sele!=0);
	  getch();
   }

⌨️ 快捷键说明

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