网站大量收购独家精品文档,联系QQ:2885784924

形状存储设计项目书.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
形状存储设计项目书

形状存储设计 项目书 题目:以直接式编码的形式为平面二维形状设计存储结构 学院:资源与环境工程学院 专业:地理信息系统 成员:马文彬 赵力学 周泉酉 索朗巴珠 方法:我们组所设计的存储方法是以建立邻接表的方式来存储平面二维形状。 用到的数据结构是 一个是顶点表,包括顶点和指向下一个邻接点的指针 一个是边表, 数据结构跟顶点不同,存储的是顶点的序号坐标,和指向下一个的指针 刚开始的时候把顶点表初始化,指针指向null。然后边表插入进来,是插入到前一个,也就是直接插入到firstedge指向的下一个,而后面的后移 代码: #include?stdio.h?? #include?stdlib.h?? #define??MaxVertexNum?100??/*最大顶点数为100*/ typedef?char?VertexType;?? typedef?struct?node???/*边表节点?? {?? ???int?adjvex[2];?/*邻接点域*/ ???node*?next[2];?/*指向下一个邻接点的指针域*/? }EdgeNode;?? typedef?struct?????/*顶点表节点?? {?? ???VertexType?vertex[2];??/*顶点域*/ ???EdgeNode*?firstedge[2];??/*边表头指针*/ }VertexNode;?? typedef?VertexNode?AdjList[MaxVertexNum];??/*AdjList 是邻接表类型*/ typedef?struct??? {??? ????AdjList?adjlist;??/*邻接表*/ ????int?n,e;??/*顶点数和边数*/ }ALGraph;??/*ALGraph 是以邻接表方式存储的图类型*/ void?create(ALGraph*);?? void?main()?? {?? ???ALGraph*?G=?(ALGraph*)malloc(sizeof(ALGraph));?? ???create(G);?? ???for?(int?i=0;i?G-n;i++)?? ???{?? ???????printf(%d-,i);?? ???????while(G-adjlist[i].firstedge!=NULL)?? ???????{?? ????????????printf(%d-,G-adjlist[i].firstedge-adjvex);?? ????????????G-adjlist[i].firstedge=G-adjlist[i].firstedge-next;?? ???????}?? ???????printf(\n);?? ???}?? }?? void?create(ALGraph*?G)?? {?? ????int?p,k,w,v;? Int i[2],j[2];? ????EdgeNode?*s;?? ????printf(读入顶点数和边数);?? ????scanf(%d,%d,G-n,G-e);??/*读入顶点数和边数*/ ???for?(p=0;pG-n;p++)??/*建立有n 个顶点的顶点表*/ ???{?? ???????fflush(stdin);?? ???????printf(建立顶点表d\n,p);?? ???????G-adjlist[p].vertex[0]=getchar();?? G-adjlist[p].vertex[1]=getchar();?? ???????G-adjlist[p].firstedge[0]=NULL;??/*顶点的边表头指针设为空*/ G-adjlist[p].firstedge[1]=NULL; ???}?? ???printf(建立边表\n);?? ???for?(k=0;kG-e;k++)??/*建立边表*/ ???{?? ???????printf(读入(vi-vj)的顶点对);??/*读入边Vi,Vj的顶点*/ ???????scanf(%d,%d,%d,%d,%d,%d,p,i[0],i[1],q,j[0],j[1]);?? ????? ??s=(EdgeNode*)malloc(sizeof(EdgeNode));??/*生成新边表结点s*/ ???????s-adjvex[0]=j[0];??/*邻接点序号为j*/ s-adjvex[1]=j[1]; ???????s-next[0]=G-adjlist[

您可能关注的文档

文档评论(0)

jiqinyu2015 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档