资源描述:
《软件技术基础三.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、软件技术基础实验四线性输出散列表和层次输出二叉树班级:自动化1406班学号:1070414635姓名:张一恺#include#include#includctypedefstructbitree//建立二叉树函数intdata;struct_bitrccstruct_bitree}bitree;typedefbitreetypedefstruct*lch订d;^rchild;*elemtype;//定义bitree*说明符_seqq//建立队列函数elemtypedata[20];intfront;intrea
2、r;intmaxsize;}scqqucuc;voidini(seqqueue*Q,intn)//初始队列Q~>maxsize=n;Q->front二Q-〉rear二0;}voidinq(seqqueue*Q,elemtypex)//进队列{辻((Q->rear+l)%Q->maxsize==Q->front){printf队列已满〃);else{Q->data[Q->rear]=x;Q->rcar=(Q->rcar+l)%Q->maxsizc;}}elemtypeout(seqqueue*Q,elemtypea)//出队列{if(Q->front==Q->rc
3、ar)printfC对为空〃);elseelemtypex=Q->data[Q->front];Q->front=(Q->front+l)%Q->maxsize;a二x;}returna;}voidvisit(bitree*root)//访问节点{printf("%droot->data);}bitree^create(bitree*root,inte)//建立排序二叉树{if(root==NULL){root=(bitree*)malloc(sizeof(bitree));root~>data=e;root->lch订d二NULL;root->rchild=N
4、ULL;returnroot;}elseif(edata)root->lchild=create(root->lchild,e);elseroot-〉rchi1d=create(root-〉rchi1d,e);rcturnroot;}voidinorder(bitree*root,inta[],intn)//中序遍历输出二叉树{staticinti二0;if(root!二NULL){inorder(root->lchiId,a,n);visit(root);a[i]=root->data;i++;inorder(toot->rch订d,a,n);}}v
5、oidcheng(bitree*root,inta[],intn)//层次遍历输出二叉树{staticinti二0;bitree*q=(bitree*)malloc(sizeof(bitree));qToot;seqqueue*Q=(seqqueue^)malloc(sizeof(seqqueue));ini(Q,100);if(root二二NULL)return;elsevisit(q);a[i]=q->data;i++;if(q->lch订d!二NULL)inq(Q,q->lchild);if(q->rchild!=NULL)inq(Q,q->rchild);}
6、while(Q->front!=Q->rear){q二out(Q,q);visit(q);a[i]=q->data;i++;if(q->lch订d!=NULL)inq(Q,q->lchild);if(q->rchild!=NULL)inq(Q,q->rchild);}}intc[13];//散列表线性探查法voidzn(inta[],intb[],intm){intj,i=0;for(i=0;i7、harx[]=z/线性探查法输出散列表:",y□二〃层次遍历输出排序二叉树:“,z二',;bitree*root二NULL;inti二0,a[13],b[13];if((fq=fopen(Z,F:\vc文件\output3.txt","wt+"))二二NULL){printf(,zCannotopenfilestrikeanykeyexit!,z);getch();exit(l);}if((fp=fopen(?,F:\vc文件\input3.txt〃,“wt+〃))二二NULL){printfCCannotopenf订estrikeanyke