数据结构——链表的习题

这篇博客探讨了如何使用链表数据结构来管理城市信息,包括城市名和位置坐标。文章涵盖了在链表中进行插入、删除、更新操作的基本要求,并提供了C++代码示例,特别强调了链表在数据查找中的应用,如按城市名获取坐标以及根据坐标和距离查找城市。
摘要由CSDN通过智能技术生成

题目

将若干城市的信息,存入一个单链表。结点中的城市信息包括:城市名,城市的位置坐标。要求能够利用城市名和位置坐标进行有关查找、插入、删除、更新等操作。
[基本要求]
(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 << <
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值