• 大小: 8KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2023-12-22
  • 语言: C/C++
  • 标签: 联络矩阵  

资源简介

根据联络矩阵求最小路集,并将她进行不交化处理。

资源截图

代码片段和文件信息

#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

评论

共有 条评论

相关资源