好文档 - 专业文书写作范文服务资料分享网站

数据结构 清华大学出版社 严蔚敏吴伟民编著

天下 分享 时间: 加入收藏 我要投稿 点赞

#include\#include\#include\#include \#define NULL 0 typedef struct node { char city_na[10]; int x; int y; }city;

typedef struct citynode { city ct; struct citynode *next; }citylist;

void creatcitylist(citylist *head) { citylist *p,*r; int i,n; r=head; printf(\ scanf(\ for(i=1;i<=n;i++) { p=(citylist *)malloc(sizeof(citylist)); printf(\ scanf(\ printf(\ scanf(\ scanf(\ p->next=r->next; r->next=p; r=p; } }

void outputcitylist(citylist *head) { citylist *p; p=head->next; printf(\ while(p!=NULL) { printf(\

printf(\ p=p->next; } }

void searchcity(citylist *head) { citylist *p; char str[10]; p=head->next; printf(\ scanf(\ while(p!=NULL) { if(strcmp(p->ct.city_na,str)==0) { printf(\ } p=p->next; } }

void returncity(citylist *head) { int x,y,d; int dis; citylist *p; p=head->next; printf(\ scanf(\ printf(\ scanf(\ while(p!=NULL) { dis=sqrt((p->ct.x)*(p->ct.x)+(p->ct.y)*(p->ct.x))-sqrt(x*x+y*y);//computer the distance if(dis < d) { printf(\ } p=p->next; } }

void main() { citylist *head; head=(citylist *)malloc(sizeof(citylist)); head->next=NULL;

}

//creating citylist creatcitylist(head); outputcitylist(head); //searching city searchcity(head);

//Having known a position and distance d,search the city that distance is maller than d returncity(head);

实验内容

一、顺序存储结构 1.顺序表基本操作的实现

当我们要在线性表的顺序存储结构上的第i个位置上插入一个元素时,必须先将线性表的第i个元素之后的所有元素依次后移一个位置,以便腾空一个位置,再把新元素插入到该位置。若要删除第i个元素时,也必须把第i个元素之后的所有元素前移一个位置。 2.两个线性表的合并运算

已知线性表La和Lb,求La=La∩Lb。

3.已知两个有序表La和Lb,把两个有序表合并成仍然有序的线性表Lc. 代码:

#include\#include\#define Maxsize 50

//线性表顺序存储的结构定义 typedef struct listnode {

int computer[Maxsize];//假设线性表中存放的是学校每年计算机的拥有量 int length;//线性表的长度 }sqlist;

void initlist(sqlist *la) //初始化线性表 {

int i=0; int x;

scanf(\while(x!=0) {

la->computer[i]=x; i=i+1;

scanf(\

}

la->length =i; }

void outputlist(sqlist *la)//输出线性表中的数据元素 { int i; }

void Insert(sqlist *la,int i,int x)// 已知线性表la,线性表la已经存在,在线性表的第i个位置插入一个数据元素x,线性表的长度加1. {

if (i>la->length+1) printf(\int j; i=i-1;

printf(\for(i=0;ilength;i++) { }

printf(\

printf(\列表的长度:%d\\n\printf(\

printf(\

for(j=la->length-1;j>=i;j--) } }

void Delete(sqlist *la,int i)// 删除线性表第i个位置上的数据元素,线性表的长度减

la->computer[i]=x; la->length=la->length+1; {

la->computer[j+1]=la->computer[j];

1 { }

int Select1(sqlist *la,int i)// //线性表la已经存在,读取第i个位置上的元素 { }

int Select2(sqlist *la,int e)// 线性表la已经存在,在线性表中查找值等于e的数据元素,如果存在这样的元素,则返回它的位置,如果不存在,则返回0. { }

void Union(sqlist *la,sqlist *lb)//两个线性表的合并运算 {

int i,e,j; int i,flag=0;

for(i=0;ilength;i++) { }

if (flag==0)

return 0;

if (la->computer[i]==e) { }

flag=1; return i+1;

return la->computer[i-1]; int j;

if (i<1 || i>la->length) printf(\for(j=i;jlength;j++)

la->computer[j-1]=la->computer[j]; la->length=la->length-1;

数据结构 清华大学出版社 严蔚敏吴伟民编著

#include\#include\#include\#include\#defineNULL0typedefstructnode{charcity_na[10];intx;inty;}city;typedefstructcitynode{cityct;structcitynode*next;}citylist
推荐度:
点击下载文档文档为doc格式
00r768k7x33pit886asl2xn8u9whcj0049r
领取福利

微信扫码领取福利

微信扫码分享