资源简介
根据联络矩阵求最小路集,并将她进行不交化处理。
代码片段和文件信息
#include
#include
using namespace std;
const int max=10;
char node[max];
int number1=0;
string C[max];
string record[max][max];
int len[max];
int n;
int flag1;
int irecord=1;
int inum=1inum2=0;
string R[max]R1[max];
int ic=0;
string array1[10][10];
string road[100]T[10][10][100];
float shuju[max];
char temple[max];
float temple2[max];
typedef struct BiTNode
{
char data;
struct BiTNode *lchild*rchild*parent;
}BiTNode*BiTree;
void CreateBiTree(BiTree &);
char SelectNode(string C[max]);
void GetPath(string C[max]int flag);
int Frequency(char astring A);
string char_to_string(char *p_str);
void PreOrderTraverse(BiTree T);
int judgement(string Astring B);
float path_to_data(char);
void reverseString(string R[max]);
int main()
{
cout<<“请输入节点个数n (n<=10):“< int n;
cin>>n;
cout<<“输入联络矩阵:“< for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
cin>>array1[i][j];
}
}
int s=0;
if(array1[1][2]!=“N“)
{
road[0]=array1[1][2];
}
for( i=1;i<=n;i++)
{
T[1][i][1]=array1[i][2];
}
int a[10][100];
for(int r=1;r<=n;r++)
{
a[0][r]=1;
}
for(int y=1;y {
for(int i=1;i<=n;i++)
{
int l=1;
for(int k=1;k<=n;k++)
{
for(int j=1;j<=a[y-1][k];j++)
{
if(array1[i][k]!=“N“&&T[y][k][j]!=“N“)
{
if(judgement(array1[i][k]T[y][k][j])==1)
{
T[y+1][i][l]=array1[i][k]+T[y][k][j];
l++;
}
}
}
if(l==1)
{
T[y+1][i][l]=“N“;
}
}
if(i==1)
{
for(int j=1;j {
s++;
road[s]=T[y+1][1][j];
}
}
a[y][i]=l-1;
}
}
for (i=0;i<=max;i++)
{
C[i]=““;
R[i]=““;
R1[i]=““;
shuju[i]=1;
}
for(int p=0;p<=s;p++)
{
C[p]=road[p];
}
cout<
BiTree T;
CreateBiTree(T);
PreOrderTraverse(T);
reverseString(R);
int uu=0;
for (int w=1;w<=max;w++)
{
if (!R[w
评论
共有 条评论