中国宠物市场调查归纳总结报告 .doc

中国宠物市场调查归纳总结报告 .doc

ID:51908824

大小:67.00 KB

页数:6页

时间:2020-03-18

中国宠物市场调查归纳总结报告 .doc_第1页
中国宠物市场调查归纳总结报告 .doc_第2页
中国宠物市场调查归纳总结报告 .doc_第3页
中国宠物市场调查归纳总结报告 .doc_第4页
中国宠物市场调查归纳总结报告 .doc_第5页
资源描述:

《中国宠物市场调查归纳总结报告 .doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、图的邻接表实现迪杰斯特拉算法(C语言)/*迪杰斯特拉算法(狄斯奎诺算法)解决的是从源点到其它所有顶点的最短路径问题*///算法实现:#include#include#defineMAX20#defineMAX_FLOAT_NUM1000/*最大浮点数(假设最大浮点数是1000)*/typedefintinfoType;/*定义边表结点权值的数据的数据类型*/typedefintvertexType;/*定义顶点结点上存储的数据的数据类型*///定义边表结点结构体typedefstructed

2、genode{intadjvertex;//边表结点域infoTypeinfo;//边表结点权值,这里存放的是其父结点到该结点的距离structedgenode*next;//指向下一个邻接点的指针域}EdgeNode;//定义顶点结点结构体typedefstructvertexnode{vertexTypeboolval;/*顶点结点域,这里存放的是该结点是否找到其距源顶点最短路径的标记,若找到最短路径,则该值为1,否则该值为0*/EdgeNode*firstedge;//边表头指针}VertexNode;typedefstr

3、uct{VertexNodeadjlist[MAX];/*邻接表*/intvertexNum;/*顶点数*/intedgeNum;/*边数*/}ALGraph;//adjacencylistgraph:邻接表/**************************************************************函数名称:CreateGraph函数功能:创建邻接表输入:顶点数vertexNum,边数edgeNum输出:指向已创建好的邻接表的指针*********************************

4、*****************************/ALGraph*CreateGraph(intvertexNum,intedgeNum){intk;EdgeNode*p;//声明图的邻接表ALGraph*G;G=(ALGraph*)malloc(sizeof(ALGraph));if(!G){G=NULL;}else{G->vertexNum=vertexNum;G->edgeNum=edgeNum;//建立顶点表for(k=0;kvertexNum;k++){G->adjlist[k].boolval=0;

5、/*boolval值判断该结点到源结点的距离是否是最短距离,是1表示已达最短距离,是0表示还没有达最短距离*/G->adjlist[k].firstedge=NULL;}//建立边表printf("请输入顶点、其邻接顶点和权值信息:");for(k=0;kedgeNum;k++){inti,j;infoTypeinfo;//表现的是边的关系,有多少对就有多少边,所以for循环次数为G->edgeNumscanf("%d,%d,%d",&i,&j,&info);if(i!=j){p=(EdgeNod

6、e*)malloc(sizeof(EdgeNode));p->next=G->adjlist[i].firstedge;G->adjlist[i].firstedge=p;p->adjvertex=j;p->info=info;}}}returnG;}/**************************************************************函数名称:dijkstra(迪杰斯特拉/迪斯奎诺)函数功能:实现迪杰斯特拉算法,找出每个顶点到源定点u的最短距离输入:邻接表指针G,源顶点u,记录每个顶点到

7、源顶点的最短距离的数组d[],到源顶点的最短路径上的前方顶点编号p[]输出:记录每个顶点到源顶点的最短距离的数组d[],到源顶点的最短路径上的前方顶点编号p[]**************************************************************/voiddijkstra(ALGraph*G,intu,intd[],intp[]){inti,j,t;EdgeNode*pnode;//初始化参数for(i=0;ivertexNum;i++){//G->adjlist[i].boolva

8、l=0;d[i]=MAX_FLOAT_NUM;p[i]=-1;}//更新源顶点直接子结点到源结点的最短距离if(!(pnode=G->adjlist[u].firstedge)){return;}while(pnode){d[pnode->adjvertex]=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。