数据结构之图实现增删查改
来源:互联网 发布:windows对象方法 编辑:程序博客网 时间:2024/06/06 01:07
#include<stdio.h>
#define MAX 10
typedef struct vertex
{
int adjvex; //顶点编号
int date; //顶点数据
}Vtype;
typedef struct graph
{
int n,e; //n为实际顶点数,e为实际边数
int adges[MAX][MAX]; //顶点集合
Vtype vexs[MAX]; //边集合
}AdjMatrix; //图的邻接矩阵类型
//创建图矩阵
int CreateMatrix(AdjMatrix &g)
{
int a,b,c;
printf("顶点数(n)和边数(e)(input like 1,2):");
scanf("%d,%d",&(g.n), &(g.e));
for(int x = 0;x < g.n; x++)
{
g.vexs[x].date = x + 1;
g.vexs[x].adjvex = x;
}
//为图的所有边赋值为0
for(int k = 0;k < g.n; k++)
{
for(int j = 0;j < g.n;j++)
{
g.adges[k][j] = 0;
}
}
for(int i = 0;i < g.e; i++)
{
printf("序列号为%d的边-->",i);
printf("起点号 终点号 权值");
//为图顶点到顶点之间输入权值
scanf("%d,%d,%d",&a,&b,&c);
if(a < g.n && b < g.n && c >= 0) //判断输入的起点号,终点号,权值是否在范围内
{
g.adges[a][b] = c;
}
else
{
printf("Input error!");
return 0;
}
}
return 1;
}
//将要删除的顶点到各顶点及各顶点到此顶点的权值设为0
int DeleteNode(AdjMatrix &g,int n)
{
bool flag = false;
for(int i = 0;i < g.n;i++)
{
if(g.vexs[i].adjvex == n)
{
flag = true;
for(int j = 0;j < g.n ;j++)
{
for(int k = 0; k < g.n ;k++)
{
g.adges[n][k] = 0;
g.adges[j][n] = 0;
}
}
}
}
if(flag)
{
return 1;
}else
{
return 0;
}
return 1;
}
//查找顶点,获取此顶点到所有顶点的权值
int SelectNode(AdjMatrix g,int n)
{
bool flag = false;
for(int i = 0;i < g.n;i++)
{
if(g.vexs[i].adjvex == n)
{
flag = true;
for(int j = 0;j < g.n ;j++)
{
printf("顶点%d到顶点%d的权值为%d/n",n,j,g.adges[n][j]);
}
}
}
if(flag)
{
return 1;
}else
{
return 0;
}
}
void DispMatrix(AdjMatrix g)
{
for(int i = 0;i < g.n ;i++)
{
for(int j = 0;j < g.n ; j++)
{
printf("%d /t",g.adges[i][j]);
}
printf("/n");
}
}
int main()
{
AdjMatrix Adj;
CreateMatrix(Adj);
DispMatrix(Adj);
int n = SelectNode(Adj,1);
if(n)
{
printf("Find Success!/n");
}else
{
printf("Find Failed!/n");
}
int m = DeleteNode(Adj,1);
if(m)
{
printf("Delete Success!/n");
}else
{
printf("Delete Failed!/n");
}
return 0;
}
- 数据结构之图实现增删查改
- 数据结构之链表实现增删改查
- 数据结构之数组的增删改查-java实现
- 图书管理程序(数据结构c语言实现增删改查)
- 数据结构线性表的动态顺序实现增删改查
- Java 数据结构数组实现(增删改查)
- 数据结构顺序表的“增删改查”功能实现
- 数据结构:java创建串并实现增删改查功能
- mongoose创建数据结构,实现基本增删改查功能
- 数据结构之顺序表的建立和增删改查
- 数据结构之——单链表的增删改查
- 数据结构之单链表的增删改查(java版)
- xml实现增删查改
- web增删改查实现
- JDBC 实现增删改查
- MVC实现增删查改
- HQL实现增删改查
- ibatis实现增删改查
- 创建BackSurface
- 用JavaScript脚本实现限定textarea的输入长度
- 20110211_给Repeater、Datalist和Datagrid增加自动编号列
- Ext.get() 和 Ext.query() 组合使用 实现 最灵活的取元素方式
- php提取xml
- 数据结构之图实现增删查改
- 继承自定义对话框
- 设置apache可以让php在多个虚拟空间限制读写权限
- P2P中的Chord算法
- IT人不要一直做技术
- 关于属性设置的先后
- 23种设计模式的趣说详解
- 关于CListCtrl 中只显示图标,不显示文字区域的解决方法
- WIN下查看端口占用的程序