- 27
- 0
- 约1.16万字
- 约 17页
- 2016-12-03 发布于重庆
- 举报
数据结构关键路径及十字链表基本操作课程设计报告
数据结构课程设计报告 小组成员:王瑞琦薇 倩 组课题: 1-1有向图十字链表的操作2-5 关键路径 有向图十字链表的操作功能概述将有向图以是十字链表的形式存储,并借助十字链表对有向图进行查找有向图中指定结点的度(出度和入度)、插入有向边和删除有向边等操作。模块简介创建有向图十字链表:void creat_crosslink(ALGraph *G,char vex[],int n,etype edge[],int e)查找结点在十字链表中的位置:int LocateVex(ALGraph *G,Vertex u) 插入指定边:bool InsertArc(ALGraph *G,etype a)删除指定边:bool DeletetArc(ALGraph *G,etype a)查找有向图中指定结点的度(出度和入度):int Count(ALGraph *G,Vertex u)数据类型/*边的数据类型*/typedef struct{ char vi,vj; int info; }etype;/*弧结点数据类型*/typedef struct ArcNode{int tailvex,headvex;/* 该弧的尾和头顶点的位置 */ struct ArcNode *hlink,*tlink;/* 分别为弧头相同和弧尾相同的弧的链域 */ InfoType info;/*若为网络则为权值*/}ArcNode;/*表头结点数据类型*/typedef struct VexNode{Vertex data; ArcNode *firstin,*firstout; /* 指向该顶点的第一条入弧和出弧 */}VexNode;typedef VexNode AdjList[MAXV];/*十字链表数据类型*/typedef struct{ AdjList adjlist; int n,e;/*图中顶点数n和边数e*/}ALGraph;概要设计CreateDG(建表)(1)获取有向图的顶点数、弧数并存入;(2)依次获取各顶点的值,存入数组,构建十字链表头结点向量组;(3)依次获取弧信息,存入,确认弧结点在十字链表中的位置并对弧赋值;(4)十字链表创建成功;LocateVex(查找)传参:有向图,顶点利用指针依次扫描表头数组,当找到该顶点时,返回该顶点在十字链表表头数组的位置(序号),未找到该顶点时,返回-1。Count(求度)传参:有向图,顶点调用LocateVex(),找到顶点的位置,利用tlink指针依次扫描以该顶点为弧尾的边,统计该顶点的出度,利用hlink指针依次扫描以该顶点为弧头的边,统计该顶点的入度,那么该顶点的度为入度加出度。InsertArc(插入边)传参:有向图,边调用LocateVex(),找到顶点的位置,建立新的存储空间,对新存储空间赋值,通过修改tlink和hlink,将新结点放入十字链表。bool DeletetArc(ALGraph *G,etype a)传参:有向图,边调用LocateVex(),找到顶点的位置,通过修改指针,将指定的边结点从十字链表中删除,同时释放存储空间。详细设计(源代码)/*建立十字链表*/void creat_crosslink(ALGraph *G,char vex[],int n,etype edge[],int e){ArcNode *p;G=(ALGraph *)malloc(sizeof(ALGraph));G-n=n;G-e=e;int k,i,j;for (i=0;in;i++)/*置入各表头结点(即顶点)*/{G-adjlist[i].firstin=NULL;G-adjlist[i].firstout=NULL;G-adjlist[i].data=vex[i];}for(k=0;ke;k++)/*先建立邻接表*/{i=0; while(G-adjlist[i].data !=edge[k].vi) i++;j=0;while(G-adjlist[j].data !=edge[k].vj)j++; p=(ArcNode *)malloc(sizeof(ArcNode));p-headvex=i+1;//始边顶点(数组元素第一个序号为0)p-tailvex=j+1;//终边顶点p-info=edge[k].info;//权值p-hlink=G-adjlist[i].firstout;//建立弧头链表p-tlink=G-adjlist[j].firstin;//建立弧尾链表G-adjlist[i].firstout=G-adjlist[j].firstin=p;//头插}}/*查找指定顶点的位置(序号)*/int
您可能关注的文档
- 建筑工程关键工序控制措施.doc
- 建筑学学生的上海旅游攻略.doc
- 市政工程旁站控制要点.doc
- 建筑施工企业风险管理应用分析.doc
- 往复真空泵的故障诊断与处理方法分析.doc
- 建筑行业中的挂靠经营问题分析.doc
- 工程项目挂靠财务管理操作及制度简述.doc
- 张学良大事年表.docx
- 心理学(一).doc
- 心理学相关论文.doc
- 伟明环保-市场前景及投资研究报告-境内业务稳健运行,印尼市场贡献边际增量.pdf
- 桂东县法院系统招聘考试真题2025.pdf
- 贵州省黔南布依族2026年中考三模物理试题及答案.pdf
- 贵州省黔南州2026年中考语文二模试卷附答案.pdf
- 贵州省铜仁市2026年中考语文二模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套完整答案详解.docx
- 贵州省毕节市2026年中考语文一模试卷附答案.pdf
- 贵州省贵阳市南明区2026年中考语文一模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套参考答案详解.docx
- 贵州省贵阳市白云区2026年中考二模物理试题附答案.pdf
最近下载
- 党委书记、董事长在2026年党风廉政建设和反腐败工作会议上的讲话.docx VIP
- 浙江婺剧艺术研究院(浙江婺剧团)-金华市政府.doc VIP
- 一种适用于强化餐厨垃圾水解制备碳源的复合药剂及方法.pdf VIP
- 护理不良事件报告及管理制度PPT课件.pptx VIP
- 岛津lc2030c高效液相色谱仪操作指南.doc
- 成人雾化吸入护理-2023中华护理学会团体标准.pptx VIP
- 跨学科项目式学习管理规范.docx VIP
- 2025年成都市中考(初中学业水平考试)数学试题卷(含标准答案).pdf
- 模拟电子技术01__半导体器件基础.pdf VIP
- 甘肃省兰州市九年级(上)期末物理试卷.docx VIP
原创力文档

文档评论(0)