⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tu.h

📁 /* 实现一个图类
💻 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 + -