제8 차 탑승 작업: 도서 관리 시스템
#include
#include
#define ENDKEY '#'
typedef struct node
{
char name[20];
char writer[20];
float price;
struct node *lchild,*rchild;
}BSTNode,*BSTree;
//
void InsertBST(BSTree *bst,char* name,char* writer,float price)
{
BSTree s;
if(*bst==NULL)//
{
s=(BSTree)malloc(sizeof(BSTNode));
strcpy(s->name,name);
strcpy(s->writer,writer);
s->price=price;
s->lchild=NULL;
s->rchild=NULL;
*bst=s;
}
else if(strcmp((*bst)->name,name)>0)
InsertBST(&((*bst)->lchild),name,writer,price);
else if(strcmp((*bst)->name,name)<0)
InsertBST(&((*bst)->rchild),name,writer,price);
}
//
void CreateBST(BSTree *bst)
{
char name[20];
char writer[20];
float price;
*bst=NULL;
printf(" ( ):
");
scanf("%s %s %f",name,writer,&price);
fflush(stdin);
while(strcmp(name,"#")!=0)
{
fflush(stdin);
InsertBST(bst,name,writer,price);
printf(" ( ):
");
scanf("%s %s %f",name,writer,&price);
}
}
//
void InOrder(BSTree bst)
{
if(bst!=NULL)
{
InOrder(bst->lchild);
printf("%s %s %f
",bst->name,bst->writer,bst->price);
InOrder(bst->rchild);
}
}
//
BSTree SearchBST(BSTree bst,char* name)
{
if(!bst) return NULL;
else if(strcmp(bst->name,name)==0)
{
printf(" :
");
printf("%s %s %f",bst->name,bst->writer,bst->price);
return bst;//
}
else if(strcmp(bst->name,name)>0)
return SearchBST(bst->lchild,name);
else
return SearchBST(bst->rchild,name);
}
BSTree SearchBST_1(BSTree bst,char* writer)
{
if(!bst) return NULL;
else if(strcmp(bst->writer,writer)==0)
{
printf(" :
");
printf("%s %s %f",bst->name,bst->writer,bst->price);
//return bst;//
}
else if(strcmp(bst->writer,writer)>0)
return SearchBST_1(bst->lchild,writer);
else
return SearchBST_1(bst->rchild,writer);
}
BSTree SearchBST_2(BSTree bst,char* name,char* writer)
{
if(!bst) return NULL;
else if(strcmp(bst->name,name)==0&&strcmp(bst->writer,writer)==0)
{
printf(" :
");
printf("%s %s %f",bst->name,bst->writer,bst->price);
return bst;
}
else if(strcmp(bst->name,name)>0)
return SearchBST_2(bst->lchild,name,writer);
else
return SearchBST_2(bst->rchild,name,writer);
}
void main()
{
char choice;
char name[20];
char writer[20];
BSTree bst;
CreateBST(&bst);
InOrder(bst);
printf("///////////////////// //////////////////////
");
printf(" :
");
printf("A.
");
printf("B.
");
printf("C. +
");
printf("///////////////////// ////////////////////////////////////////
");
fflush(stdin);
scanf("%c",&choice);
switch(choice)
{
case 'A':printf(" :
");scanf("%s",name);SearchBST(bst,name);break;
case 'B':printf(" :
");scanf("%s",writer);SearchBST_1(bst,writer);break;
case 'C':printf(" , :
");scanf("%s %s",name,writer);SearchBST_2(bst,name,writer);break;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 구현 천둥 제거 게임 상세 정보먼저 작은 메뉴를 표시하고 게임을 할지 여부를 선택하십시오.사용자가 종료를 선택하면 프로그램 실행이 끝나고, 사용자가 게임을 선택하면 지뢰 제거 위치 좌표를 입력하라는 메시지가 표시됩니다.사용자가 입력한 좌표가 바둑...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.