?? test.cpp
字號:
#include "iostream"
#include "Graphlnk.h"
#include <fstream>
using namespace std;
struct GLvector//向量
{
int sign;
float fX;
float fY;
float fZ;
};
static const float a2fVertexOffset[4][3] =
{
{0.0, 0.0, 0.0},{1.0, 0.0, 0.0},{1.0, 1.0, 0.0},{0.0, 1.0, 0.0}
};
void CreateVertices(int iDataSetSize,Graphlnk<GLvector,int> &G,float fStepSize)
{
float a=0.0;
int iX, iY, iZ,iVertex=0;
for(iY = 0; iY <= iDataSetSize; iY++)
for(iX = 0; iX <= iDataSetSize; iX++)
{
G.NodeTable[iVertex].data.fX =iX*fStepSize;
G.NodeTable[iVertex].data.fY =iY*fStepSize;
G.NodeTable[iVertex].data.fZ = a;
if(iVertex == 0)
{
G.NodeTable[iVertex].data.sign = 1;
}
else
{
G.NodeTable[iVertex].data.sign = G.NodeTable[iVertex-1].data.sign+1;
}
/*cout<<"<"<<G.NodeTable[iVertex].data.sign<<",";
cout<<G.NodeTable[iVertex].data.fX<<",";
cout<<G.NodeTable[iVertex].data.fY<<",";
cout<<G.NodeTable[iVertex].data.fZ<<">"<<endl;*/
iVertex++;
}
G.numVertices = iVertex;
cout<<"The number of numVertices:"<<G.numVertices<<endl;
}
int main()
{
using std::cout;
using std::cin;
using std::endl;
int iDataSetSize,cost;
int num,iVertex=0,iVertex1=0,iVertex2=0;
cout<<"iDataSetSize=:";
cin>>iDataSetSize;
num = (iDataSetSize+1)*(iDataSetSize+1);
float fStepSize = 1.0/iDataSetSize;
Graphlnk<GLvector,int> G;
CreateVertices(iDataSetSize,G,fStepSize);
for(int i=0; i<num; i++)
{
cout<<"<"<<G.NodeTable[i].data.sign<<",";
cout<<G.NodeTable[i].data.fX<<",";
cout<<G.NodeTable[i].data.fY<<",";
cout<<G.NodeTable[i].data.fZ<<">"<<endl;
}
cout<<"-----------"<<endl;
//加橫向邊長
for(int j=0; j<=iDataSetSize; j++)
{
for(int i=0; i<iDataSetSize; i++)
{
cost = G.insertEdge(iVertex,iVertex+1,1);
cout<<"<"<<G.NodeTable[iVertex].data.sign<<","<<G.NodeTable[iVertex+1].data.sign<<":"<<cost<<">"<<endl;
iVertex++;
}
iVertex++;
}
cout<<"------------------"<<endl;
//加縱向邊長
for(int i=0; i<=iDataSetSize; i++)
{
for(int j=0; j<iDataSetSize; j++)
{
cost = G.insertEdge(iVertex1,iVertex1+iDataSetSize+1,1);
cout<<"<"<<G.NodeTable[iVertex1].data.sign<<","<<G.NodeTable[iVertex1+iDataSetSize+1].data.sign<<":"<<cost<<">"<<endl;
iVertex1= iVertex1+(iDataSetSize+1);
}
iVertex1=i+1;
}
cout<<"------------------"<<endl;
//加斜向邊長
for(int j=0; j<iDataSetSize; j++)
{
for(int i=0; i<iDataSetSize; i++)
{
cost = G.insertEdge(iVertex2,iVertex2+iDataSetSize+2,1);
cout<<"<"<<G.NodeTable[iVertex2].data.sign<<","<<G.NodeTable[iVertex2+iDataSetSize+2].data.sign<<":"<<cost<<">"<<endl;
iVertex2= iVertex2++;
}
iVertex2++;
}
cout<<"------------------"<<endl;
cout<<"------------------"<<endl;
ofstream outFile;
outFile.open("data.txt",ios::out);
char a = ':';
char b = ',';
//int course = 2401,number;
for(int i=0; i<num; i++)
{
outFile<<'<';
outFile<<G.NodeTable[i].data.sign;
outFile<<a;
outFile<<G.NodeTable[i].data.fX;
outFile<<b;
outFile<<G.NodeTable[i].data.fY;
outFile<<b;
outFile<<G.NodeTable[i].data.fZ;
outFile<<'>'<<endl;
}
outFile<<"--------------------------------"<<endl;
for(int i=0; i<num; i++)
{
Edge<GLvector,int> *p,*q;
p = G.NodeTable[i].adj;
if(p != NULL)
{
outFile<<'<';
outFile<<G.NodeTable[i].data.sign<<':';
outFile<<p->dest+1<<',';
p = p->link;
}
while(p != NULL)
{
outFile<<p->dest+1<<',';
p = p->link;
}
outFile<<'>'<<endl;
}
/*for(int i=0; i<num; i++)
{
Edge<GLvector,int> *p,*q;
p = G.NodeTable[i].adj;
if(p != NULL)
{
cout<<'<';
cout<<G.NodeTable[i].data.sign<<':';
cout<<p->dest+1<<',';
p = p->link;
}
if(p != NULL)
{
cout<<p->dest+1<<',';
p = p->link;
}
cout<<'>'<<endl;
}*/
G.output();
getchar();
getchar();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -