//本文章来源于网络。 // 图书管理系统.cpp : 定义控制台应用程序的入口点。 // //#include "stdafx.h" #include "iostream" #include "fstream" #include "string.h" #include "iomanip" using namespace std; /*int _tmain(int argc, _TCHAR* argv[]) { return 0; }*/ /*int mark0=0;//用于标记是否找到要找的信息 int mark1=0;//用于标记是否找到要找的信息*/ struct Reathur{//记录书籍的书名信息 char bookname[20];//书名 struct Reathur* Lnode;//指向下一图书节点 }; struct Reader{//记录读者信息 char Readername[20];//读者名称 struct Reathur* next;//指向该读者借的书 struct Reader* Lreader,*Right,*Lift;//下一个读者节点 }; struct Libray{//记录图书的详细信息 char bookname[20];//书名 char bookno[20];//编号 char bookreathur[20];//作者名 int booknum;//现有册数 struct Libray* Llink,* Rlink,*Lnext;//下一图书的左右节点 struct Reader* read;//指向借阅该书的读者 }; void bsinsert(struct Libray* s,struct Libray* &t)//{将 s 所指结点插入到根结点指针为 t 的树中} { if (t==NULL) t=s; else if(strcmp(s->bookname,t->bookname)==1){ bsinsert(s,t->Rlink); } else { bsinsert(s,t->Llink); } } void Rnorder( struct Reader* T){//中序遍历所有的读者链的所有节点 if(T!=NULL){ Rnorder( T->Lift); struct Reathur* u; u=T->next; cout<Readername<<"\n"; while(u!=NULL){ cout<bookname<<"》"<<"\n"; u=u->Lnode; } Rnorder( T->Right); } } ////////////////////////////////////////////////////////// ///////////////按中序遍历遍历二叉排序树进行检索/////////// void Rnorder_name( struct Reader* T,char name[],int &vetex){//中序遍历读者链的所有节点 int i=vetex; if(T!=NULL){ Rnorder_name( T->Lift,name,i); if(strcmp(T->Readername,name)==0){ struct Reathur* u; u=T->next; cout<Readername<<"\n"; while(u!=NULL){ cout<bookname<<"》"<<"\n"; u=u->Lnode; } vetex=1; } Rnorder_name( T->Right,name,i); } }...