1 / 27
文档名称:

数据结构实验报告.doc

格式:doc   大小:218KB   页数:27页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构实验报告.doc

上传人:xxj16588 2018/6/28 文件大小:218 KB

下载得到文件列表

数据结构实验报告.doc

文档介绍

文档介绍:实验一顺序表
1 实验题目
编制一个演示顺序表插入、删除、查找等操作的程序
2 需求分析与概要设计
为了实现上述程序功能,需要定义抽象数据类型:
本程序包含函数:

初始化函数Status InitList_L(SqList &L)
显示顺序表内容函数Output(SqList &L)
插入顺序表元素函数ListInsert_Sq(SqList &L,int i,ElemType)
输入顺序表元素函数input(SqList &L,int n)
3 详细设计
#include ""
#include ""
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
#define NULL 0
typedef int Status;
typedef int ElemType;
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
void CreateList_L(LinkList &L,int n)
{
LNode *p,*q;
L=new LNode;
L->next=NULL; p=L;
for(int i=0;i<n;i++)
{
cout<<"请输入第"<<i+1<<"个数:";
q=new LNode;
cin>>q->data;
q->next=p->next; p->next=q; p=q;
cout<<endl;
}
}
void PrintList_L(LinkList L)
{
LNode *p;
cout<<"输出链表:"<<endl;
p=L->next;
while(p!=NULL)
{
cout<<p->data<<" ";
p=p->next;
}
}
void main()
{ LNode *L;
CreateList_L(L,5);
PrintList_L(L);
}
4 输出结果
实验二城市链表

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

本演示程序用vc++ ,完成城市链表的生成,任意位置的插入、删除,以及确定某一元素在单链表中的位置。
3 概要设计
为了实现上述程序功能,需要定义抽象数据类型:
本程序包含的函数:
主函数main()
初始化函数城市链表CreateList_L(LinkList &L,int n)
显示内容函数coutcity(LNode *p)
插入元素函数cincity(LNode *p)
删除元素函数ListDelete_L(LinkList &L,int i,ElemType &e)
查找元素函数ListSearch(LinkList &L,char *citytext)
注:对于一个链表应该包含初始化的基本函数。
关系是
城市链表是在链表的基础上改进的,她具备了链表的基本特征。
但是在定义数据类型时要定义一个数据类来描述这个城市单元!
这个单元是typedef struct {
char city[20];
int x;
int y;
}ElemType;
其中,xy是坐标,city[]是城市名。

#include <>
#include <>
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define OVERFLOW -2
#define NULL 0
typedef int Status;
typedef struct {
char city[20];
int x;
int y;
}ElemType;
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
void cincity(LNode