欢迎来到天天文库
浏览记录
ID:48516402
大小:32.14 KB
页数:16页
时间:2020-02-06
《航空订票系统c++数据结构大作业.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、......#include#include#include#include#defineM450//定义数组的空间为不可改变的整数usingnamespacestd;intmain();//申明主函数structflight//航班信息{charterminal[10];//终点站名charnumber[10];//航班号charid[10];//飞机号chardate[10];//飞行日期intmember;//乘员定额intrest;//余票量structflight*next;//指向下一个节点的
2、指针};structcustom//客户信息{charname[10];//姓名charnumber[10];//航班号intcount;//数量intgrade;//舱位等级structcustom*next;//指向下一个节点的指针};structflight*a[M];//flight类型的指针数组structnode//二叉树节点{structcustom*base;node*r;//左孩子node*l;//右孩子};charch[100];intjudge(char(&ch)[100]){inti,s=0,x=0;if(strlen(ch)==3){for(i=0;
3、i='0'&&ch[i]<='9')s++;}if(s==strlen(ch)){for(i=0;i4、NULL)return(0);l=(strlen(str)+1)/2;s=(unsignedshort*)str;for(i=0;i>s->terminal>>s->number>>s->id>>s->date>>s->member>>s-5、>rest)//提取文件信息{val=hash(hashvalue(s->terminal));while(a[hash(val)]!=NULL)//如果数组中的元素不为空,建立链表{if(!strcmp(a[hash(val)]->terminal,s->terminal)){t=a[hash(val)];while(t->next)//将节点往下移,直至最后节点{t=t->next;}t->next=s;t=s;t->next=NULL;//末尾节点的next赋空break;}elseval++;//哈希表冲突,往数组后面的空位移动}if(a[hash(val)]==NU6、LL)//如果哈希表中元素为空,赋给从文件中提取的值{a[hash(val)]=s;a[hash(val)]->next=NULL;}s=newflight;}obj.close();//关闭文件}专业.专注.......voidcreate(node*&root,custom*&s)//生成二分查找树{custom*t=newcustom;if(root==NULL)//当该节点为空时赋值{root=newnode;root->base=s;root->l=NULL;root->r=NULL;}elseif(hash(hashvalue(s->name))>hash(has7、hvalue(root->base->name)))create(root->r,s);//比当前节点小,往左孩子移elseif(hash(hashvalue(s->name))base->name)))create(root->l,s);//比当前节点大,往右孩子移else//等于当前节点{t=root->base;while(t->next!=NULL)//将节点往下移,直至最后节点t=t->next;t->next=s;//到尾部添加形成线性表t=s;t
4、NULL)return(0);l=(strlen(str)+1)/2;s=(unsignedshort*)str;for(i=0;i>s->terminal>>s->number>>s->id>>s->date>>s->member>>s-
5、>rest)//提取文件信息{val=hash(hashvalue(s->terminal));while(a[hash(val)]!=NULL)//如果数组中的元素不为空,建立链表{if(!strcmp(a[hash(val)]->terminal,s->terminal)){t=a[hash(val)];while(t->next)//将节点往下移,直至最后节点{t=t->next;}t->next=s;t=s;t->next=NULL;//末尾节点的next赋空break;}elseval++;//哈希表冲突,往数组后面的空位移动}if(a[hash(val)]==NU
6、LL)//如果哈希表中元素为空,赋给从文件中提取的值{a[hash(val)]=s;a[hash(val)]->next=NULL;}s=newflight;}obj.close();//关闭文件}专业.专注.......voidcreate(node*&root,custom*&s)//生成二分查找树{custom*t=newcustom;if(root==NULL)//当该节点为空时赋值{root=newnode;root->base=s;root->l=NULL;root->r=NULL;}elseif(hash(hashvalue(s->name))>hash(has
7、hvalue(root->base->name)))create(root->r,s);//比当前节点小,往左孩子移elseif(hash(hashvalue(s->name))base->name)))create(root->l,s);//比当前节点大,往右孩子移else//等于当前节点{t=root->base;while(t->next!=NULL)//将节点往下移,直至最后节点t=t->next;t->next=s;//到尾部添加形成线性表t=s;t
此文档下载收益归作者所有