91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 5KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-07
  • 語言: C/C++
  • 標簽: 數據結構??C++??圖論??

資源簡介

無向圖 破圈法求最小生成樹 WIN32控制臺應用程序 VS2010以上編譯運行成功 數據結構上機作業 圖用的是鄰接矩陣表示方法

資源截圖

代碼片段和文件信息

#include
#include
#define?INF?9999
#define?UNVIS?0
#define?VIS?1
using?namespace?std;
class?node{
public:
char?value;
node()
{

}
};
class?graph{
public:
int?save_i;
bool?stop_push_vector;
bool??find_flag;
vector?myvec;
int?**?matrix;
bool?**?edge_flag;
bool?*?mark;
node?*??nodes;
int?length;
bool?haveloop()
{
myvec.clear();
for?(int?i?=?0;?i? {
for?(int?j?=?0;?j? {
if(i==j)
edge_flag[i][j]=VIS;
else
edge_flag[i][j]=UNVIS;
}
}
if(DFS_search()==true)//有環
{
//刪除最大的邊??在myvec中有記錄



return?true;
}
else
return?false;
}

graph(int?num=5)
{
length=num;
mark?=?new?bool[length];
nodes?=?new?node[length];
matrix?=?new?int*[length];
edge_flag=new?bool*[length];
for?(int?i?=?0;?i? {
edge_flag[i]=new?bool[length];
}
for?(int?i?=?0;?i? {
matrix[i]=new?int[length];
}
//初始化
for?(int?i?=?0;?i? {
mark[i]=UNVIS;
}
for?(int?i?=?0;?i? {
for?(int?j?=?0;?j? {
if(i==j)
matrix[i][j]=0;
else?
matrix[i][j]=INF;


}
}
//輸入頂點value
cout<<“輸入“< for?(int?i?=?0;?i? {

cin>>nodes[i].value;
}

}

int?get_su(char?value)
{
for?(int?i?=?0;?i? {
if(nodes[i].value==value)
return?i;
}
cout<<“erro“;
return?-1;
}
void?setedge(char?ichar?jint?weight)
{
matrix[get_su(i)][get_su(j)]=weight;
matrix[get_su(j)][get_su(i)]=weight;
}
bool?DFS_search()
{
//重置標記
find_flag=false;//沒找到環
stop_push_vector=false;
for?(int?i?=?0;?i? {
mark[i]=UNVIS;
}
for?(int?i?=?0;?i? {
if(find_flag==false?&&mark[i]==UNVIS)
DFS_S(i);
}

if(find_flag==true)
{
//找到并刪除存儲在myvec中最大的邊
vector::iterator?i;
node?*?p1*p2;
p1=*(myvec.begin());
p2=*(myvec.begin()+1);
int?max_edge?=?matrix[get_su(p1->value)][get_su(p2->value)];//前2個點的邊的長

for?(i?=?myvec.begin()+1;?(i+1)?!=?myvec.end();?i++)//從第(23)個邊開始?到end-1end
{
if(?matrix[get_su((*i)->value)][get_su((*(i+1))->value)]??>?max_edge)
{
max_edge?=??matrix[get_su((*i)->value)][get_

評論

共有 條評論