题目
将若干城市的信息,存入一个单链表。结点中的城市信息包括:城市名,城市的位置坐标。要求能够利用城市名和位置坐标进行有关查找、插入、删除、更新等操作。
[基本要求]
(1) 能在单链表中插入、删除、更新城市信息;
(2) 给定一个城市名,返回其位置坐标;
(3) 给定一个位置坐标P和一个距离D,返回所有与P的距离小于等于D的城市。
链表
链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。
代码(C++)
借鉴网上的代码
C#没有链表的相关函数,需要自己编写,所以还是C++好用一些
插入函数写了简单的在最后插入,没有写在中间插入
#include <iostream>
#include <math.h>
#include<conio.h>
#include<string>
using namespace std;
struct Node //创建结点
{
char Name[50];
double x;
double y;
Node* next;
};
class List
{
private:
Node* head, * f;
int size;
public:
List();
void Insert();
void Delete();
void Search();
void distance();
void show();
void update();
};
List::List() //构造
{
head = new Node;
f = head;
size = 0;
}
void List::Insert()
{
Node* p = new Node;
cout << "请给出你要插入的城市的信息:";
cin >> p->Name;
cin >> p->x;
cin >> p->y;
if (size == 0)
{
cout << <