欢迎来到天天文库
浏览记录
ID:57174633
大小:65.50 KB
页数:17页
时间:2020-08-05
《算法与数据结构课程设计文章电子教案.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、算法与数据结构课程设计姓名:学号:1实验1设计循环单链表的结点结构,并按要求处理函数和过程voidfun(Node*head,int*len){if(head==null)return;Node*p=head;while(p!=null){p=p->next;//输出节点中的数据printf("....",...);//节点数加1*len++;}}实验2设有n个人围坐成一圈,按要求报数,每次淘汰一个,知道所有人淘汰。试用数据结构表示出来#include#includei
2、ntn,s,m,out,a[100];/*n为所有人数,out为出局的人*/voidjosegh();voidmain(){inti;printf("n=");scanf("%d",&n);printf("s=");scanf("%d",&s);printf("m=");scanf("%d",&m);for(i=1;i<=n;i++)/*定义数组a[100],按顺序赋值*/a[i]=i;1while(n!=0)josegh();system("pause");}voidjosegh()/*每当出局一个人,n
3、减1,数组重新排列*/{out=s+m-1;while(out>n)out-=n;printf("o=%d",a[out]);n--;s=out;while(out<=n)a[out++]=a[out+1];}实验3设单链表中存放n个字符,试用栈判断该字符串是否对称,如xyzzyx。#include#include#include#defineLENsizeof(structnode)#defineMAX147structnode{charcc;str
4、uctnode*next;};intjudge(structnode*head,intlen){structnode*top,*p1,*p2;top=NULL;p1=head->next;for(inti=0;icc=p1->cc;p2->next=top;top=p2;p1=p1->next;1}if(len%2==1)p1=p1->next;p2=top;for(i=0;icc!
5、=p1->cc)break;top=p2->next;p1=p1->next;p2=top;}if(!top)return1;elsereturn0;}intmain(){intn=0;charstr[MAX];structnode*head,*p;head=p=(structnode*)malloc(LEN);head->next=p->next=NULL;printf("亲、请输入一个字符串:");gets(str);intlen=strlen(str);while(n6、'){p=(structnode*)malloc(LEN);p->cc=str[n];p->next=head->next;head->next=p;n++;}intflag=judge(head,len);if(flag)printf("%s是一个回文!",str);elseprintf("%s不是一个回文!",str);return0;}1实验4对给定任意图建立邻接表并输出,实现图的广度优先遍历#include//#include#defineINFI7、NITY32767#defineMAX_VEX20//最大顶点个数#defineQUEUE_SIZE(MAX_VEX+1)//队列长度usingnamespacestd;bool*visited;//访问标志数组//图的邻接矩阵存储结构typedefstruct{char*vexs;//顶点向量intarcs[MAX_VEX][MAX_VEX];//邻接矩阵intvexnum,arcnum;//图的当前顶点数和弧数}Graph;//队列类classQueue{public:voidInitQueue(){b8、ase=(int*)malloc(QUEUE_SIZE*sizeof(int));front=rear=0;}voidEnQueue(inte){base[rear]=e;rear=(rear+1)%QUEUE_SIZE;}voidDeQueue(int&e){e=base[front];front=(front+1)%QUEUE_SIZE;}public:int*base;intfront;intrear;};
6、'){p=(structnode*)malloc(LEN);p->cc=str[n];p->next=head->next;head->next=p;n++;}intflag=judge(head,len);if(flag)printf("%s是一个回文!",str);elseprintf("%s不是一个回文!",str);return0;}1实验4对给定任意图建立邻接表并输出,实现图的广度优先遍历#include//#include#defineINFI
7、NITY32767#defineMAX_VEX20//最大顶点个数#defineQUEUE_SIZE(MAX_VEX+1)//队列长度usingnamespacestd;bool*visited;//访问标志数组//图的邻接矩阵存储结构typedefstruct{char*vexs;//顶点向量intarcs[MAX_VEX][MAX_VEX];//邻接矩阵intvexnum,arcnum;//图的当前顶点数和弧数}Graph;//队列类classQueue{public:voidInitQueue(){b
8、ase=(int*)malloc(QUEUE_SIZE*sizeof(int));front=rear=0;}voidEnQueue(inte){base[rear]=e;rear=(rear+1)%QUEUE_SIZE;}voidDeQueue(int&e){e=base[front];front=(front+1)%QUEUE_SIZE;}public:int*base;intfront;intrear;};
此文档下载收益归作者所有