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

📄 tushuguan2.c

📁 我编写的一个
💻 C
📖 第 1 页 / 共 2 页
字号:
			 printf("图书信息:书号 %d  编者名%s  书名 %s 现存量 %d 是否在架 %d 是否已删 %d 总库存量 %d  \n",book->link[i2]->key[1]->bookid,book->link[i2]->key[1]->editname,book->link[i2]->key[1]->bookname,book->link[i2]->key[1]->nowno,book->link[i2]->key[1]->onshelf,book->link[i2]->key[1]->tag,book->link[i2]->key[1]->total);
			 printf("\n");return 0;
			 }
		 }
	     if(book->key[1]->bookid!=-32767&&book->key[2]->bookid!=-32767&&book1->bookid>book->key[i2]->bookid)
		  {
			 if(book->link[3]!=NULL&&book->link[3]->key[1]->bookid==book1->bookid)
			 {
				book->link[3]->key[1]->nowno++;book->link[3]->key[1]->onshelf=1;
		        book->link[3]->key[1]->tag=1;book->link[3]->key[1]->total++;
				printf("图书信息:书号 %d  编者名%s  书名 %s 现存量 %d 是否在架 %d 是否已删 %d 总库存量 %d  \n",book->link[3]->key[1]->bookid,book->link[3]->key[1]->editname,book->link[3]->key[1]->bookname,book->link[3]->key[1]->nowno,book->link[3]->key[1]->onshelf,book->link[3]->key[1]->tag,book->link[3]->key[1]->total);
			    printf("\n");return 0;
			 }
			 else
			 if(book->link[3]==NULL)
			 {
			   book3->key[1]=book1;book->link[3]=book3;
			   book->link[3]->parent=book;book->link[3]->keynum++;
			   book->link[3]->key[1]->nowno++;book->link[3]->key[1]->onshelf=1;
		       book->link[3]->key[1]->tag=1;book->link[3]->key[1]->total++;
			   printf("图书信息:书号 %d  编者名%s  书名 %s 现存量 %d 是否在架 %d 是否已删 %d 总库存量 %d  \n",book->link[3]->key[1]->bookid,book->link[3]->key[1]->editname,book->link[3]->key[1]->bookname,book->link[3]->key[1]->nowno,book->link[3]->key[1]->onshelf,book->link[3]->key[1]->tag,book->link[3]->key[1]->total);
			   printf("\n");return 0;
			 }
		 }
	  }
  }
  else
  {   book2=book;
    while(1)
	{   
		for(i1=1;i1<5;i1++)
		{
			if(book2->key[i1]->bookid==book1->bookid)
		   {
             book2->key[i1]->nowno++;book2->key[i1]->onshelf=1;
			 book2->key[i1]->tag=1;book2->key[i1]->total++;
			 printf("\n");printf("图书信息:书号 %d  编者名 %s 书名 %s 现存量 %d 是否在架 %d 是否已删 %d 总库存量 %d  \n",book2->key[i1]->bookid,book2->key[i1]->editname,book2->key[i1]->bookname,book2->key[i1]->nowno,book2->key[i1]->onshelf,book2->key[i1]->tag,book2->key[i1]->total);
   	         return 0;
		   }
		   if(book2!=NULL&&book1->bookid<book2->key[i1]->bookid)
		   {    
			   if(book2->link[i1]!=NULL)
			   { book2=book2->link[i1];break;}
			   else
			   {book2->link[i1]=book3;book2=book2=book2->link[i1];book2->parent=book2;break;}
		   }
		   if(book2->keynum==3&&book2!=NULL&&book1->bookid>book2->key[3]->bookid)
		   {
			   if(book2->link[4]!=NULL)
			   { book2=book2->link[4];break;}
			   else
			   {book2->link[4]=book3;book2=book2=book2->link[4];book2->parent=book2;break;}
		   }	   
		   else
		  {
			  if(book2->keynum==0)
			  { 
				  book2->key[1]=book1;book2->keynum++;
				  book2->key[1]->nowno++;book2->key[1]->onshelf=1;
				  book2->key[1]->tag=1;book2->key[1]->total++;
				  printf("\n");printf("图书信息:书号 %d  编者名 %s 书名 %s 现存量 %d 是否在架 %d 是否已删 %d 总库存量 %d  \n",book2->key[1]->bookid,book2->key[1]->editname,book2->key[1]->bookname,book2->key[1]->nowno,book2->key[1]->onshelf,book2->key[1]->tag,book2->key[1]->total);
   	              return 0;
			  }
		      if(book2->keynum>0&&book2->keynum<3&&book1->bookid>book2->key[i1]->bookid&&book2->key[i1+1]->bookid==-32767)
              { 
				   book2->key[i1+1]=book1;book2->keynum++ ;
				   book2->key[i1+1]->nowno++;book2->key[i1+1]->onshelf=1;
				   book2->key[i1+1]->tag=1;book2->key[i1+1]->total++;
				   printf("图书信息:书号 %d  编者名 %s  书名 %s 现存量 %d 是否在架 %d 是否已删 %d 总库存量 %d  \n",book2->key[i1+1]->bookid,book2->key[i1+1]->editname,book2->key[i1+1]->bookname,book2->key[i1+1]->nowno,book2->key[i1+1]->onshelf,book2->key[i1+1]->tag,book2->key[i1+1]->total);
   	               printf("\n");return 0;
			  } 
		   }
		   
		}
	}free(book3);free(book2);
	 
}
}

searchbook(int id,booknode *T)//查找图书
{
{
  int i,i1,i2,i3,j=0;
  booktype *book1;
  booknode *book2,*book3;
  resulttype *result;
  booktypeInitiate(&book1);
  booknodeInitiate(&book2);
  booknodeInitiate(&book3);
  book1->bookid=id;
  book2=T;
  if(T->keynum==0)
  {
	  printf(" 该图书不存在\n");
	  printf("\n");
	  return 0;
  }
   while(1)
	{   
		for(i1=1;i1<5;i1++)
		{
			if(book2->key[i1]->bookid==book1->bookid)
		   {
			 printf("图书信息:书号 %d  编者名 %s  书名 %s 现存量 %d 是否在架 %d 是否已删 %d 总库存量 %d  \n",book2->key[i1]->bookid,book2->key[i1]->editname,book2->key[i1]->bookname,book2->key[i1]->nowno,book2->key[i1]->onshelf,book2->key[i1]->tag,book2->key[i1]->total);
             printf("\n"); return book2->key[i1];
		   }
		   if(book2!=NULL&&book1->bookid<book2->key[i1]->bookid)
		   {    //printf("aaaaaaa==%d\n",book2->link[i1]->keynum);
			   if(book2->link[2]!=NULL)
			   { printf("aaaaaaa\n");book2=book2->link[i1];break;}
			   else
			   {
               	printf(" 该图书不存在\n");printf("\n");
				return 0;
			   }
		   }
		    if(book2!=NULL&&book2->key[i1]->bookid!=-32767&&book2->key[i1+1]->bookid==-32767&&book1->bookid>book2->key[i1]->bookid)
			{  
			   if(book2->link[i1+1]!=NULL)
			   { book2=book2->link[i1+1];break;}
			   else
			   {
                 printf(" 该图书不存在\n");printf("\n");
				 return 0;
			   }
		   }	 	   
		}
	}free(book3);
	 
}
}


delbook(int id,booknode *T)
{
{
  int i,i1,i2,i3,j=0;
  booktype *book1;
  booknode *book2,*book3,*book4;
  resulttype *result;
  booktypeInitiate(&book1);
  booknodeInitiate(&book2);
  booknodeInitiate(&book3);
  booknodeInitiate(&book4);
  book1->bookid=id;
  book2=T;
  if(T->keynum==0)
  {
	  printf(" 该图书不存在,不能删除\n");
	  return 0;
  }
   while(1)
	{   
		for(i1=1;i1<5;i1++)
		{
			if(book2->key[i1]->bookid==book1->bookid)
		   {
			 printf("图书信息:书号 %d  编者名 %s  书名 %s 现存量 %d 是否在架 %d 是否已删 %d 总库存量 %d  \n",book2->key[i1]->bookid,book2->key[i1]->editname,book2->key[i1]->bookname,book2->key[i1]->nowno,book2->key[i1]->onshelf,book2->key[i1]->tag,book2->key[i1]->total);
             book3=book2; 
			// if(i1==1)
		//	 {
			    while(book2->link[i1]->keynum!=0)
				 {
					 book2=book2->link[i1];//	printf("aaaaa\n");	 
				     for(i2=2;i2<4;i2++)
						 if(book2->key[i2-1]->bookid!=-32767&&book2->key[i2]->bookid==-32767&&book2->link[i2]==NULL)
						 {   
							 
							 //book3->key[i1]=book2->key[i2-1];book2->keynum==0;
						     book3->key[i1]=book2->key[i2-1];  // book2->key[i2-1]->bookid=-32767;
							 book4=book2;
							 while(book4->link[i2-1]!=NULL)
							 {	 
						        book4=book4->link[i2-1];
							    while(book4->link[i2]!=NULL)
							   {
								 book4=book4->link[i2];
								 for(i3=2;i3<4;i3++)
								 {
									 if(book4->key[i3]->bookid==-32767&&book4->key[i3-1]->bookid!=-32767&&book4->link[i3]==NULL)
									 {book2->key[i2-1]=book4->key[i3-1];}
							         // else    book4=book4->link[i3];
								 }
								}
						     if(book2->link[i2-1]==NULL&&i2==2)
                             book2==NULL;
						     return 0;
							 }
						 }
				 }
			//	else
			//	 if(book2->link[i1+1]->keynum!=0)
			//	 {
			//	    book2=book2->link[1];
			//	 }
		//	 }
		/*	if(book2->key[i1+1]->bookid==-32767)
			{
				if(book2->link[1]->keynum!=0)
				 {
					 book2=book2->link[1];
					 
				     for(i2=2;i2<4;i2++)
						 if(book2->key[i2-1]->bookid!=-32767&&book2->key[i2]->bookid==-32767&&book2->link[1]==NULL)
						 {   
							 if(i2==2)
							 {book3->key[i1]=book2->key[1],book2==NULL;return 0;}
							  book3->key[i1]=book2->key[i2-1];
						      book2->key[i2-1]->bookid=-32767;
						 }
				 }
			}*/
		   }
		   if(book2!=NULL&&book1->bookid<book2->key[i1]->bookid/*&&book2->keynum!=0*/)
		   {    
			   if(book2->link[i1]!=NULL)
			   { book2=book2->link[i1];break;}
			   else
			   {
               	printf(" 该图书不存在\n");
				return 0;
			   }
			  // else
			   //{book2->link[i1]=book3;book2=book2=book2->link[i1];break;}
		   }
		   if(book2->keynum==3&&book2!=NULL&&book1->bookid>book2->key[3]->bookid)
		   {
			   if(book2->link[4]!=NULL)
			   { book2=book2->link[4];break;}
			   else
			   {
                 printf(" 该图书不存在\n");
				 return 0;
			   }
		   }	   	   
		}
	}free(book3);
	 
}
}
/*searchbook(booknode *T,booktype k)
{
 int i,found;
 booknode *p;
 booknode *q;
 resulttype *x,*y;
 p=T;
 q=NULL;
 found=FALSE;
 i=0;//初始化,P指向待查节点,	q指向P的双亲
 while(p&&!found)
 {
    // y=seachBtree(&p,k); 
	 i=y->i; 
	 if(i>0&&p->key[i]->bookname==k.bookname) found=TRUE;//找到待查关键字
	 else{q=p;p->recptr[i];}
 }
 if(found)
 {x->i=i;x->pt=p;x->tag=1;return &x;}//查找不成功
 else 
 {x->i=i;x->pt=q;x->tag=0;return &x;}//查找不成功,返回K的插入位置信息
}//查找函数*/



setname(char bname[])
{
}


disp()
{
}

clear()
{
}

query(int id)
{
}
/**********************************************///子函数的子函数

⌨️ 快捷键说明

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