- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
城市实验报告
实验一 线性表
实验目的:
本次实习的主要目的在于熟悉线性表的基本运算在两种存储结构上的实现,其中以熟悉各种链表的操作为侧重点。通过本次实习还可帮助读者复习高级语言的使用方法。
实验内容:
城市链表
[问题描述]
将若干城市的信息,存入一个带头结点的单链表。结点中的城市信息包括:城市名,城市的位置坐标。要求能够利用城市名和位置坐标进行有关查找、插入、删除、更新等操作。
[基本要求]
(1) 给定一个城市名,返回其位置坐标;
(2) 给定一个位置坐标P和一个距离D,返回所有与P的距离小于等于D的城市。
int Menu()
{
int choice;
printf(************************\n);
printf( 1.新建\n);
printf( 2.根据城市名查找\n);
printf( 3.根据离中心坐标距离查找\n);
printf( 4.输出城市链表\n);
printf( 5.退出\n);
printf(============================\n);
printf(请选择:);
scanf(%d, choice);
return choice;
}
程序如下所示:
#includemalloc.h /* malloc()等 */
#includestdio.h /* EOF(=^Z或F6),NULL */
#includeprocess.h /* exit() */
#includemath.h
#includestdlib.h
#includestring.h
/* 函数结果状态代码 */
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
/* #define OVERFLOW -2 因为在math.h中已定义OVERFLOW的值为3,故去掉此行 */
struct xinxi
{
int x;
int y;
};
struct LNode
{
char name[40];
struct xinxi zuobiao;
struct LNode *next;
};
Typedef struct LNode *LinkList; /* 另一种定义LinkList的方法 */
int InitList(LinkList *L) /* 操作结果:构造一个空的线性表L */
{
*L=(LinkList)malloc(sizeof(struct LNode)); /* 产生头结点,并使L指向此头结点 */
if(!*L) /* 存储分配失败 */
exit(OVERFLOW);
(*L)-next=NULL; /* 指针域为空 */
return OK;
}
int DestroyList(LinkList *L) /* 初始条件:线性表L已存在。操作结果:销毁线性表L */
{
LinkList q;
while(*L)
{
q=(*L)-next;
free(*L);
*L=q;
}
return OK;
}
int ClearList(LinkList L) /* 不改变L */ /* 初始条件:线性表L已存在。操作结果:将L重置为空表 */
{
LinkList p,q;
p=L-next; /* p指向第一个结点 */
while(p) /* 没到表尾 */
{
q=p-next;
free(p);
p=q;
}
L-next=NULL; /* 头结点指针域为空 */
return OK;
文档评论(0)