栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

数据结构实验一

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据结构实验一

题目描述:
  将若干城市的信息,存入一个带头结点的单链表。结点中的城市信息包括:城市名,城市的位置坐标。要求能够利用城市名和位置坐标进行有关查找、插入、删除、更新等操作。并且实现1)给定一个城市名,返回其位置坐标;2)给定一个位置坐标P和一个距离D,返回所有与P的距离小于等于D的城市。

  分析:比较基础的链表题目。主要分为以下几个步骤:初始化并创建列链表,输入有用信息,查找相关信息并输出。

  本次实验采用C++面向对象特性进行编写,为方便同学理解,同时编写C语言代码,注意:本次完整代码在10月16号后才全部公开,并提供所有的源文件与实验报告,以下的代码均提供主要思路,未实现运行。

  C++版:主要分为3个模块,linkList.h头文件,linkList.cpp函数文件,Main.cpp测试文件,运行环境为VS2019
“linkList.h” 主要是函数大纲与类的创建。

#pragma once
#ifndef linkLIST_H
#define linkLIST_H

#include 
#include 
#include 
using namespace std;


struct lip{
	char city_name[20];
	double jd;
	double wd;
	double distance;
};

typedef struct link {
	lip data;
	struct link* next;
}Node;

class linkListClass {
	Node* head;
public:
	linkListClass();
	~linkListClass();
	void CreateListR();
	void DispList();
	int ListLength();
	bool Search_city(char s[]);
	double Distance_city(double m, double n, double x, double y) {
		return sqrt((m - x) *(m-x) + (n - y)*(n-y));
	}
	bool Search_distance(double x, double y, double m);
};


#endif // !linkLIST_H

“linkList.cpp” 主要函数暂不提供。

Main.cpp暂不提供。

下面是C语言代码,主要函数已编写完成。

#include 
#include 
#include 
#include 
struct lip{
	char city_name[50];
	float jd;
	float wd;
}; 

typedef struct Node{
	lip data;
	struct Node *next;
}LNode,*linkList;

void Initlink(linkList *L){
	(*L)=(linkList)malloc(sizeof(LNode));
	(*L)->next=NULL;
}

void Creatlink(linkList L){
	int i;
	double x,y;
	linkList p;
	for(i=0;i<30;i++){
		p=(linkList)malloc(sizeof(LNode));
		scanf("%s",p->data.city_name);
		scanf("%f%f",&p->data.jd,&p->data.wd);
		p->next=L->next;
		L->next=p; 
	}
}

void Displink(linkList L){
	linkList p;
	p=L->next;
	while(p!=NULL){
		printf("%s   %f   %fn",p->data.city_name,p->data.jd,p->data.wd);
		p=p->next;
	}
}

void Search(linkList L,char s[]){
	linkList p;
	p=L->next;
	while(p!=NULL){
		if(strcmp(p->data.city_name,s)==0){
			printf("%f %f",p->data.jd,p->data.wd);
			break;
		}
		p=p->next;
	}
}

double dis(double a,double b,double c,double d){
	return sqrt((a-c)*(a-c)+(b-d)*(b-d));
}

void Distance(linkList L,double x,double y,double m){
	linkList p;
	p=L->next;
	while(p!=NULL){
		if(dis(p->data.jd,p->data.wd,x,y)data.city_name);
		}
		p=p->next;
	}
}

int main(){
	...
	...
	return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/302853.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号