




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include #include #include typedef struct GNodeint weight;int nIndex;struct GNode *next; * GList;struct GArraychar name5;GList next;typedef struct QNodeGArray * data;QNode * next;QNode, *QueuePtr;typedef structQueuePtr front;QueuePtr rear;LinkQueue;bool InitQueue(LinkQueue &Q)Q.front = Q.rear = (QueuePtr)malloc(sizeof(QNode);if(!Q.rear)exit(0);Q.front-next = NULL;return true;void DestroyQueue(LinkQueue &Q)while(Q.front)Q.rear = Q.front-next;free(Q.front);Q.front = Q.rear;bool EmptyQueue(LinkQueue &Q)if(Q.front = Q.rear)return true;elsereturn false;bool EnQueue(LinkQueue &Q, GArray * gl)QueuePtr p;p = (QueuePtr)malloc(sizeof(QNode);if(!p)exit(0); p-data = gl; p-next = NULL; Q.rear-next = p; Q.rear = p; return true;bool DeQueue(LinkQueue &Q, GArray *&gl)if(Q.front = Q.rear)return false;QueuePtr p;p = Q.front-next;gl = p-data;Q.front-next = p-next;if(Q.rear = p)Q.rear = Q.front;free(p);return true;void CreateG(GArray *GArr, int *arr, int n)for(int i = 0; i n; i+)GArri.next = NULL;char S20;if(i / 10 = 0)S0 = v;S1 = i + 0 + 1;S2 = 0;elseS0 = v;S1 = i / 10 + 1;S2 = i % 10 + 1 + 0;/ 顶点信息strcpy(GA, S);for(int j = 0; j weight = arrij;p-nIndex = j;p-next = GArri.next;GArri.next = p;void BFSTree(GArray *GArr, int n)bool * Visited;Visited = (bool *)malloc(n * sizeof(bool);if(!Visited)exit(0);for(int i = 0; i n; i+)Visitedi = false;LinkQueue Q;InitQueue(Q); / 初始化队列for(int i = 0; i next; pL; pL = pL-next)if(!VisitedpL-nIndex)VisitedpL-nIndex = true;printf(%s , GArrpL-nI);EnQueue(Q, &GArrpL-nIndex);/ 压入其临界点free(Visited);DestroyQueue(Q);void main()int n;scanf(%d, &n);int *array;GArray *GArr;array = (int *)malloc(sizeof(int *)*n);for(int i = 0; i n; i+)arrayi = (int *)malloc(sizeof(int) * n);GArr = (GArray *)malloc(sizeof(GArray) * n);for(int i = 0; i n; i+)for(int j = 0; j n; j+)scanf(%d, &arrayij);CreateG(GArr, array, n);BFSTree(GArr, n);/ 释放二维数组空间for(int i = 0; i n; i+)free(arrayi);free(array);/ 释放临界表存储空间for(int i = 0; i next;free(p1);/ 释放临界表数组free(GArr);#include #include #include typedef struct GNodeint weight;int nIndex;GNode * next; *GList;struct GArraychar name4;GList next;void InPut(int *array, int n)for(int i = 0; i n; i+)for(int j = 0; j n; j+)scanf(%d, &arrayij);void CreateG(GArray *GArr, int *array, int n)for(int i = 0; i n; i+)GArri.next = NULL;char s20;s0 = v;if(i / 10 = 0)s1 = i % 10+1 + 0;s2 = 0;elses1 = i / 10 + 0;s2 = i % 10+1 + 0;s3 = 0;strcpy(GA, s);for(int j = 0; j weight = arrayij;p-next = GArri.next;p-nIndex = j;GArri.next = p;/ 深度优先遍历void DFS(GArray *GArr, int i, int n, bool *Visited)Visitedi = true;printf(%s , GA);GList p;for(p = GArri.next; p; p = p-next)if(!Visitedp-nIndex)DFS(GArr, p-nIndex, n, Visited);void DFSTree(GArray *GArr, int n)bool *Visited;Visited = (bool *)malloc(sizeof(bool) * n);for(int i = 0; i n; i+)Visitedi = false;for(i = 0; i n; i+)if(!Visitedi) DFS(GArr, i, n, Visited);free(Visited);void main()int n;scanf(%d, &n);int *array;array = (int *)malloc(sizeof(int*)*n);for(int i = 0; i n; i+)arrayi = (int *)mal
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 绿色建筑物业管理服务履约与环保担保合同
- 2025 劳动合同范本样本正规劳动合同范本
- 《2025超龄外籍劳工劳务合同》
- 2025年中期设备租赁合同范本
- 202a临时工合同协议书
- 2025【合同范本】质押担保借款合同书范本
- 灯具订货合同模板标准版3篇
- 《商铺租赁合同》终止协议书4篇
- 委托合同范文:监理委托合同范本3篇
- 租用农耕地合同2篇
- 急性出血性疾病的早期识别与处理
- 张穗鸿教学课件
- 皮肤感染的护理
- 2025秋统编版(2024)道德与法治一年级上册教学计划
- 智能书柜阅读活动方案
- 床旁超声监测胃残余量在重症患者肠内营养管理中的应用
- 简短戒烟干预戒烟成功
- 寿司下周活动方案
- 地面维修液压支架故障排除技术措施
- 降低口腔炎发生率的品管圈实践
- 呼吸专科护士培训课件
评论
0/150
提交评论