📄 tu.h
字号:
#pragma once
/*
实现一个图类,通过增加结点关系而增加结点,通过创建新关系而覆盖旧关系
能在DOS窗口打印图结点列表和结点边列表
初始化的时候 结点表首指针置为NULL,在释放图对象的时候,析构函数实现释放结点和边结点
*/
#include"stdio.h"
typedef struct _node //定义一个结点
{
int ip;//唯一标识
struct _node *next;
struct _link *link;
int bz;//用于遍历的标识
}NODE,*PNODE;
typedef struct _link //定义边
{
struct _node *node;
struct _link *next;
int q;//定义边的权 默认为0
}LINK,*PLINK;
class TU
{
protected:
PNODE top;
PNODE searchdd(int ip);
//寻找IP的结点,未找到返回NULL
public:
TU();
~TU(); //释放结点和边结点内存
//查找IP1与IP2是否连通
int isxt(int ip1,int ip2);
//当a为0表示无向边,为1表示有向边
//建立从IP1到IP2的关系,如果IP1或IP2不存在,则建立IP1或IP2结点,如果TOP为空,并修改TOP
//如果IP1到IP2的关系存在,则新的关系将覆盖旧的关系 q表示边的权
int addgx(int ip1,int ip2,int q,int a);
//建立从IP1到IP2的关系,如果IP1或IP2不存在,则建立IP1或IP2结点,如果TOP为空,并修改TOP
void printtu(); //打印图
void adddd(int ip);
int getvnum();
private:
int blt(PNODE ip1,int ip2); //深度优先遍历图
// 记录图的顶点数
int vnum;
public:
// 删除一个顶点,删除成功返回,并取掉关联的边,返回1,未找到则返回0
int deldd(int ip);
public:
// 检查是否存在IP的顶点
int isczdd(int ip);
public:
// 检查IP1到IP2是否有连接
int iszl(int ip1,int ip2);
public:
// 得到IP1到IP2边的权,如果IP1或IP2不存在,或边不存在则返回0
int getq(int ip1, int ip2);
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -