数据结构实习题-单链表的应用
来源:互联网 发布:手机淘宝怎么退款申请 编辑:程序博客网 时间:2024/06/15 16:36
/*******************************************************************
P54 实习题一:将若干城市的信息存入一个带头结点的单链表,结点中的城市
信息包括城市名、城市的位置坐标。要求:
(1)给定一个城市名,返回其位置坐标;
(2)给定一个位置坐标P和一个距离D,返回所有与P的距离小于等于D的城市。
*******************************************************************/
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
typedef struct
{
char CityName[10];
int x,y;
}CityInfo;
typedef struct node
{
CityInfo data;
struct node *next;
}Node, *LinkList;
//算法2.5 初始化带头结点的单链表
void InitList( LinkList *H)
{
*H = (LinkList)malloc(sizeof(Node));
(*H)->next = NULL;
}
//输出线性表的元素
void Print(LinkList H)
{
H = H->next;
while(H)
{
printf("城市:%s\t位置:(%d,%d)\n",H->data.CityName,H->data.x,H->data.y);
H = H->next;
}
printf("\n");
}
//算法2.10 带头结点的单链表插入
int InsList (LinkList L , int i, CityInfo e)
{//将新元素 e 插入在链表中第 i 个位置
Node *pre=L, *s;
int k=0;
while(pre!=NULL&&k<i-1)
{ pre = pre->next;
k=k+1;
}
if( k != i-1 ) //插入位置不合理返回0
return 0;
s = (Node *) malloc (sizeof (Node) ); //创建新结点
s->data = e;
s->next = pre->next; //链入
pre->next = s;
return 1;
}
LinkList SearchCity(LinkList L, char c)
{
while(L->next && L->next->data.CityName[0]!=c)
L = L->next;
return L->next;
}
void main()
{
LinkList L, p;
struct tm t;
char c = 'A', str[20];
CityInfo e;
int i, x, y, d, xz;
_getsystime(&t);
srand(t.tm_sec);
InitList(&L);
for(i=0; i<10; i++)
{
e.CityName[0] = c+i;
e.CityName[1] = '\0';
e.x = rand()%100 - 50;
e.y = rand()%100 - 50;
InsList(L, i+1, e);
}
while(1)
{
Print(L);
printf("选择以下操作:1、城市名查坐标, 2、坐标距离查城市, 0、退出:");
scanf("%d", &xz);
getchar();
switch(xz)
{
case 1:
printf("根据城市名找坐标,请输入城市名:");
gets(str);
p = SearchCity(L, str[0]);
if(p)
printf("城市:%s\t位置:(%d,%d)\n\n",p->data.CityName,p->data.x,p->data.y);
else
printf("没有该城市!\n\n");
break;
case 2:
printf("请输入坐标和距离:");
scanf("%d%d%d",&x,&y,&d);
p = L->next;
printf("距离坐标(%d,%d)在%d范围内的城市为:",x,y,d);
while(p)
{
if((p->data.x-x)*(p->data.x-x)+(p->data.y-y)*(p->data.y-y)<=d*d)
printf("%s\t",p->data.CityName);
p = p->next;
}
printf("\n");
break;
case 0:
exit(0);
}
}
}
- 数据结构实习题-单链表的应用
- 关于数据结构实习的想法。。。。。。。。。
- 数据结构实习
- 数据结构单链表的简单应用
- 反射的应用---实习框架功能
- 数据结构的基本概念 单链表的应用
- 数据结构实习:迷宫求解
- 数据结构实习题目
- 数据结构实习报告
- 第一次数据结构实习。。。
- 数据结构实习 请教代码
- 数据结构课程设计实习报告
- 数据结构实习二1
- 数据结构实习二2
- 数据结构实习-迷宫求解
- 数据结构 单链表的应用:多项式及其运算
- 数据结构算法——单链表的应用
- 数据结构基础:单链表的应用(1)
- 配置实现-简约之美
- 第2章 统一建模语言UML简介(笔记)
- Android面试之----Android系统架构图及简单的系统架构介绍 .
- JSP元素
- NTT DATA处女面
- 数据结构实习题-单链表的应用
- sfsdf
- 【視圖】罰牌記錄:使用臨時表,UNION與JOIN將Match_Event表中的紅牌黃牌記錄分別統計出來
- Object 类之 hashCode 和 equals 方法
- uboot移植问题
- 企业需要什么样的ERP运维服务
- 电脑运行速度慢优化电脑
- PDO 解决数据库乱码方法
- 显示浏览过的商品