预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10
亲,该文档总共17页,到这已经超出免费预览范围,如果喜欢就直接下载吧~
如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
淮海工学院计算机工程学院实验报告书课程名:《数据结构》题目:实验1线性数据结构及其应用班级:G计算机111姓名:蒋菲评语:成绩:指导教师:批阅时间:年月日《数据结构》实验报告--实验1线性数据结构实验目的和要求1、掌握线性表、栈和队列等抽象数据类型的定义2、掌握线性表抽象数据类型的实现。3、结合具体应用,掌握线性表、栈和队列等的使用方法。实验环境TurboC或VC++实验学时4学时,必做实验实验内容1.将若干城市的信息存入一个带头结点的单链表,结点中的城市信息包括城市名、城市的位置坐标。要求:(1)给定一个城市名,返回其位置坐标;(2)给定一个位置坐标P和一个距离D,返回所有与P的距离小于等于D的城市。2.回文判断。称正读与反读都相同的字符序列为“回文”序列。试写一个算法,判断依次读入的一个以@为结束符的字母序列,是否为形如‘序列1&序列2’模式的字符序列。其中序列1和序列2中都不含字符‘&’,且序列2是序列1的逆序列。例如,‘a+b&b+a’是属该模式的字符序列,而‘1+3&3-1’则不是。主要数据结构先进行类型定义,再初始化链表,然后进行查找某个城市,找到该城市的经度和纬度,最后找到所有与坐标的距离小于等于该距离的城市。主要算法InitList(LinkList*H){*H=(LinkList)malloc(sizeof(Node));//初始化链表(*H)->next=NULL;returnOK;}creatlist(LinkListh){inti;LinkListp;for(i=0;i<N;i++){p=(LinkList)malloc(sizeof(Node));scanf("%s",p->data.name);scanf("%f%f",&(p->data.wd),&(p->data.jd));p->next=h->next;h->next=p;h=p;}h->next=NULL;returnOK;}disp(LinkListL){LinkListp;p=L->next;while(p!=NULL){printf("\n%s\t纬度:%.4f\t经度:%.4f",p->data.name,p->data.wd,p->data.jd);p=p->next;}returnOK;}getCityPosition(LinkListh,chara[20]){Node*p;p=h->next;while(p!=NULL){if(strcmp(a,p->data.name)==0){printf("\n查找结果:%s\t纬度:%.4f\t经度:%.4f",p->data.name,p->data.wd,p->data.jd);break;}elsep=p->next;}returnOK;}voidsearch(LinkListh,floata,floatb,floatj){Node*p;p=h->next;while(p!=NULL){floatc,d,z;c=p->data.wd;d=p->data.jd;z=111.12*cos(1/(sin(a)*sin(c)+cos(a)*cos(c)*cos(d-a)));if(z<=j){printf("%s\n",p->data.name);p=p->next;}elsep=p->next;}}运行结果(2)charpops(stack*a){node*tf=NULL;charrt=0;if(a->size){tf=a->top;a->top=a->top->next;--a->size;rt=tf->data;free(tf);}returnrt;}charpopq(queue*a){node*tf=NULL;charrt=0;if(a->size){tf=a->front;a->front=a->front->next;--a->size;rt=tf->data;free(tf);}returnrt;}voidpush(stack*a,constcharc){node*t=(node*)malloc(sizeof(