数据结构课程设计论文(手机通讯录管理系统,最佳旅游路线规划问题,图书租借管理问题) 联系客服

发布时间 : 星期五 文章数据结构课程设计论文(手机通讯录管理系统,最佳旅游路线规划问题,图书租借管理问题)更新完毕开始阅读4a02b052ce2f0066f533228f

借书如果出现书目不存在:

还书:

17

附录

源程序清单 //2.h

#include #include #include

#define EQ(a,b) (!strcmp((a),(b))) #define LT(a,b) (strcmp((a),(b))<0)

#define LQ(a,b) (strcmp((a),(b))<=0) //定义字符串比较函数 typedef struct BiTNode {

char data[10]; // 定义树的节点存储的信息

struct BiTNode *lchild,*rchild; //定义结点的左子树和右子树 }*BiTree; //定义树的结构

int SearchBST(BiTree T,char ch[20],BiTree f,BiTree &p) //在二叉树中递归地查找关键字为ch[20]的数据元素 { //

FILE *fp=fopen(\ if(!T)

{ p=f;return 0;} //如果树为空,则指针p else if (EQ(ch,T->data)) { p=T; return 1; }

else if (LT(ch,T->data))

return SearchBST(T->lchild,ch,T,p); else

return SearchBST(T->rchild,ch,T,p); }

int InsertBST(BiTree &T,char ch[20]) {

if(!SearchBST(T,ch,NULL,p)) //

FILE *fp=fopen(\

BiTree p,s;

18

{

s=(BiTree)malloc(sizeof(BiTNode));

strcpy(s->data,ch);

s->lchild=NULL; s->rchild=NULL; if(!p) T=s; else

if (LT(ch,T->data)) p->rchild=s; else p->lchild=s; return 1;

}

else return 0;

}

int InsertBST1(BiTree &T,char ch[20]) {

// FILE *fp=fopen(\

BiTree p,s;

if(!SearchBST(T,ch,NULL,p)) { } else

return 0;

s=(BiTree)malloc(sizeof(BiTNode)); strcpy(s->data,ch); s->lchild=s->rchild=NULL; if(!p)

T=s;

p->lchild=s; p->rchild=s;

else if (LT(ch,p->data))

else

return 1;

19

}

int Delete(BiTree &p) {

FILE *fp=fopen(\

BiTree q,s; if(!p->rchild) { q=p;p=p->lchild; free(q); }

else if(!p->lchild) {

q=p;p=p->rchild; free(q); } else{

q=p;s=p->lchild; while(s->rchild) {

q=s;s=s->rchild; }

strcpy(p->data,s->data); if(q!=p)

q->rchild=s->lchild; delete s; } return 1; }

int DeleteBST(BiTree&T,char ch[20]) { FILE *fp=fopen(\ if(!T) return 0; else {

if (EQ(ch,T->data)) {Delete(T);} else if(LT(ch,T->data))

DeleteBST(T->lchild,ch); else DeleteBST(T->rchild,ch);

20