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

📄 test05_4.cpp

📁 该包是数据结构的实验软件,来源于合肥工业大学人工智能与数据挖掘实验室,用来实现数据结构.
💻 CPP
字号:
// { test05_4}
  #include"listses.h"
   lists L,La,Lb;
   char ch;

  int   depth(lists L)
   {
    lists P;
    int dep;
    int h;
	if (L==nil)
	     dep=0;
       else  if (L->tag==0)
	       dep=0;
	     else
		  {  h=0;
		     P=L->hp;
		     while (P!=nil)
			{  h=Max(depth(P),h);
			   P=P->tp;
			 }
		     dep=h+1;
		  }
	return dep;
    }

void  print_lists_node1(lists ls)
     {lists p;
	 if (ls->tag==0)
	   cout<<ls->data;
	  else
	     {cout<<'(';
	      p=ls->hp;
	      while (p!=nil)
		       {  print_lists_node1(p);
			  if (p->tp!=nil)
			     cout<<',';
			     p=p->tp;
			}
	   cout<<')';
	     }
      }


  void  print_lists1( char title, lists ls)
    { cout<<title<<'=';
      print_lists_node1(ls);
     }

     void  Getchar1(char& c,string s,int& i)
	  {
	   while (i<strlen(s) && (s[i]==' '))
		    i=i+1;
		 if  (i<=strlen(s) )
			c=s[i];
		     else
			c=' ';
		 i=i+1;
	   }


     void Create1( lists& ls,char& c, string s, int& i,int level)
	  {  Getchar1(c,s,i); //{ ls:=nil;}
	    if (c==')')
	     if (level<1)
		   Error_exit("Error in string ");
		 else
		   ls=nil;
	    else if (c==',')
		Create1(ls,c,s,i,level) ;
		 else if (c=='(')  //{ and (level>1)}
		     {
		      ls=new node;
		      ls->tag=1;
		      Create1(ls->hp,c,s,i,level+1);
		      Create1(ls->tp,c,s,i,level);
		      }
		 else {
		       ls=new node;
		       ls->tag=0;
		       ls->data=c;
		       Create1(ls->tp,c,s,i,level);
		      }
	   }


	 void  create_lists1(lists& ls,string s)
      { char c;
	int   i=0;
	unsigned char s1[50]="";
	unsigned char s2[50]="";
	Ltrim(s,s1);
	Rtrim(s1,s2);
	strcpy(s,s2);

	 Getchar1(c,s,i);
	   ls=new node;
	   ls->tag=1;
	   ls->tp=nil;
	   ls->hp=nil;
	   if (c=='(')
	       Create1(ls->hp,c,s,i,1);
	   else
	       Error_exit("Error in string ");
	}

	main()
	{
	//  {***main***}
	 
	 create_lists(L,'L',"((a,b,c),d,(e,f,g))");
	 cout<<"depth(L)="<<depth(L)<<endl; //           {Question 1}
	 create_lists(La,'A',"(((a,b,c)),d,(e,f,g))");
	 cout<<"A-tools disp ";
	 print_lists('A',La);
	 cout<<endl;
	 cout<<"\nA-user disp ";
	 print_lists1('A',La);
	 cout<<endl;
	 Wait(); // {Question 2}
	 create_lists(Lb,'B',"(((a,b,c)),d,(e,f,g))");
	 create_lists1(Lb,"(((a,b,c)),d,(e,f,g))");
	 cout<<"\nA-user create";
	 print_lists('B',Lb);
	 Wait(); // {Question 3}
     }

⌨️ 快捷键说明

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