城市实验报告Word文件下载.docx
- 文档编号:19857990
- 上传时间:2023-01-11
- 格式:DOCX
- 页数:8
- 大小:50.18KB
城市实验报告Word文件下载.docx
《城市实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《城市实验报告Word文件下载.docx(8页珍藏版)》请在冰豆网上搜索。
************************\n"
);
1.新建\n"
2.根据城市名查找\n"
3.根据离中心坐标距离查找\n"
4.输出城市链表\n"
5.退出\n"
============================\n"
请选择:
"
scanf("
%d"
&
choice);
returnchoice;
}
程序如下所示:
#include<
malloc.h>
/*malloc()等*/
stdio.h>
/*EOF(=^Z或F6),NULL*/
process.h>
/*exit()*/
math.h>
stdlib.h>
string.h>
/*函数结果状态代码*/
#defineTRUE1
#defineFALSE0
#defineOK1
#defineERROR0
#defineINFEASIBLE-1
/*#defineOVERFLOW-2因为在math.h中已定义OVERFLOW的值为3,故去掉此行*/
structxinxi
{
intx;
inty;
};
structLNode
charname[40];
structxinxizuobiao;
structLNode*next;
TypedefstructLNode*LinkList;
/*另一种定义LinkList的方法*/
intInitList(LinkList*L)/*操作结果:
构造一个空的线性表L*/
{
*L=(LinkList)malloc(sizeof(structLNode));
/*产生头结点,并使L指向此头结点*/
if(!
*L)/*存储分配失败*/
exit(OVERFLOW);
(*L)->
next=NULL;
/*指针域为空*/
returnOK;
}
intDestroyList(LinkList*L)/*初始条件:
线性表L已存在。
操作结果:
销毁线性表L*/
LinkListq;
while(*L)
q=(*L)->
next;
free(*L);
*L=q;
intClearList(LinkListL)/*不改变L*//*初始条件:
将L重置为空表*/
LinkListp,q;
p=L->
/*p指向第一个结点*/
while(p)/*没到表尾*/
q=p->
free(p);
p=q;
L->
/*头结点指针域为空*/
intListEmpty(LinkListL)
{/*初始条件:
若L为空表,则返回TRUE,否则返回FALSE*/
if(L->
next)/*非空*/
returnFALSE;
else
returnTRUE;
intListLength(LinkListL)
返回L中数据元素个数*/
inti=0;
LinkListp=L->
i++;
p=p->
returni;
intGetElem(LinkListL,chara[],xinxi*b)/*算法2.8*/
{/*L为带头结点的单链表的头指针。
给定一个城市名,用b返回其位置坐标并返回OK,否则返回ERROR*/
while(p&
&
strcmp(p->
name,a)!
=0)/*顺指针向后查找,直到p指向给定一个城市名或p为空*/
p||strcmp(p->
=0)/*给定一个城市名不存在*/
returnERROR;
*b=p->
zuobiao;
/*用b返回其位置坐标*/
voidCreateList(LinkList*L,intn)
{/*正位序(插在表尾)输入n个元素的值,建立带表头结构的单链线性表*/
inti;
/*生成头结点*/
q=*L;
请输入%d个数据(格式为:
城市名横坐标纵坐标)\n"
n);
for(i=1;
i<
=n;
i++)
p=(LinkList)malloc(sizeof(structLNode));
%s%d%d"
p->
name,&
(p->
zuobiao.x),&
zuobiao.y));
q->
next=p;
q=q->
p->
voidjuli(LinkListL,intn)
{
inta,b,d;
doubles;
请输入给定的位置坐标P:
%d%d"
&
a,&
b);
请输入给定的距离D:
d);
while(p)
{s=sqrt(pow(p->
zuobiao.x-a,2)+pow(p->
zuobiao.y-b,2));
if(s<
=d)
puts(p->
name);
voidprint(LinkListL)
{
%s%d%d\n"
name,p->
zuobiao.x,p->
zuobiao.y);
//遍历线性表,本函数是输出,根据问题的需要,进行其他的操作
voidmain()
intn,k,i=1;
LinkListL;
charcity[40];
xinxib;
请输入链表L的元素个数(即城市个数)n="
n);
while(i)
k=Menu();
switch(k)
case1:
CreateList(&
L,n);
L="
print(L);
break;
case2:
printf("
请输入城市名:
scanf("
%s"
city);
GetElem(L,city,&
printf("
x=%d,y=%d\n"
b.x,b.y);
break;
case3:
juli(L,n);
break;
case4:
print(L);
case5:
结果输出:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 城市 实验 报告