您所在位置:网站首页 > 海量文档
 > 计算机 > 数据结构与算法
C语言课程设计--算法与数据结构.doc20页
本文档一共被下载:次,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
目 录
设计方案及实现过程******************第3页
实现代码***********************************第4页
测试******************************************第19页
难点与收获********************************第21页
设计方案及实现过程
这次课程设计要求实现无向图、有向图、无向网以及有向网的一些基本操作以及应用,大体的方案是先进入界面后,选择无向图、有向图、无向网、无向网中的一个,然后创建相应的图或者网,创建好后,在此基础上选择进行相关的操作,具体的函数放在main函数前面,通过多次函数调用已达到具体操作的实现。
流程图如下:
实现代码
#include
# include
# define maxlen 10
# define large 999
# define true 1
# define false 0
# define ok 1
# define error 0
# define overflow -2
# define null 0
typedef int status;
#include
#include
#include
#include
#include
using namespace std;
#define MAX_VERTEX_NUM 20
#define MAX 1000
typedef struct{
int a[maxlen],b[maxlen],h[maxlen];
char vexs[maxlen];
int vexnum,arcnum;
int kind;
int arcs[maxlen][maxlen];
}graph;
typedef struct node{
int adjvex;
int info;
struct node *next;
}edgenode;
typedef struct{
int id;
char data;
edgenode *link;
}vexnode;
typedef struct{
vexnode adjs[maxlen];
int vexnum,arcnum;
int kind;
}adjlist;
typedef struct qnode{
int data;
struct qnode *next;
}linkqlist;
typedef struct
{linkqlist *front;
linkqlist *rear;
} linkqueue;
typedef struct
{int stack[maxlen];
int top;
}stackstru;
int cnull=-1;
graph g;
adjlist adjl;
stackstru *t;
stackstru *s;
linkqueue *q;
graph printf_adjmatrix(graph g){
int i,j;
printf("邻接矩阵:\n");
printf("vertex\t");
for (i=0;i
printf("\n");
for(i=0;i
printf("% 4c \t",g.vexs[i]);
for(j=0;j
printf("\n");
}
return g;
}
void create_2(graph g){ //构造有向图
int i,j,k,c=0;
for (i=0;i
for(j=0;j
g.arcs[i][j]=c;
for(k=0;k
g.arcs[g.a[k]-1][g.b[k]-1]=1;
printf_adjmatrix(g);
}
void create_1(graph g){ //构造无向图
int i,j,k,c=0;
for (i=0;i
for(j=0;j
g.arcs[i][j]=c;
for(k=0;k
g.arcs[g.a[k]-1][g.b[k]-
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名:
验证码:
匿名?
发表评论