今天给各位分享c语言结构图实例化的知识,其中也会对c语言的结构化实现进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、数据结构 图的基本操作要C语言的完整代码!!2、c语言 数据结构编程 图状结构的应用3、c#中实例化到底是什么意思?4、C++编程时,我定义了一个结构体,再用这个结构体实例化一个对象。那么这个对象是不是也有this指针呢?
数据结构 图的基本操作要C语言的完整代码!!
#includestdio.h
#define n 6
#define e 8
void CREATGRAPH();
typedef char vextype;
typedef float adjtype;
typedef struct{
vextype vexs[n];
adjtype arcs[n][n];
}graph;
int main()
{
CREATGRAPH();
printf(“创建成功!\n”);
}
void CREATGRAPH()
{
graph *ga;
int i,j,k;
float w;
for(i=0;in;i++)
ga-vexs[i]=getchar();
for(i=0;in;i++)
for(j=0;jn;j++)
ga-arcs[i][j]=0;
for(k=0;ke;k++)
{
scanf(“%d%d%f”,i,j,w);
ga-arcs[i][j]=w;
ga-arcs[j][i]=w;
}
printf(“创建成功!\n”);
}
没写完,,自己加加吧!
c语言 数据结构编程 图状结构的应用
#include iostream
#include fstream
using namespace std;
class edgeset{
public:
int from;//边起始点
int end;//边终止点
int w;//边的权值
};//定义一个类用来存放图的边的信息(kruskal算法中用到)
//==============prim算法=============================
void prim(int a[11][11],int (path)[11][11]){
cout”运用prim算法”endl;
int i,j,k;
int mini,minj,min,sum=0;
a[0][0]=-1;
cout”通道铺设情况:(0-10分别对应点a-k)”endl;
for(k=1;k11;k++){
min=100;
for(i=0;i11;i++){
for(j=0;j11;j++){
if(a[i][i]+a[j][j]==-1 a[i][j]0 a[i][j]min){
min=a[i][j];
mini=i;
minj=j;
}
}
}
if(a[mini][mini]==-1){
cout”(“mini”,”minj”)”;
path[mini][minj]=a[mini][minj];
path[minj][mini]=a[mini][minj];
a[minj][minj]=-1;
}
else{
cout”(“mini”,”minj”)”;
path[mini][minj]=a[mini][minj];
a[mini][mini]=-1;
path[minj][mini]=a[mini][minj];
}
sum=sum+min;
}
coutendl;
cout”建设费用为:”sumendl;
//=============最小生成树的邻接矩阵输出==============
cout”最小生成树对应的邻接矩阵为:”endl;
for(int x=0;x11;x++){
for(int y=0;y11;y++){
coutpath[x][y]” “;
}
coutendl;
}
}
//===================================================
//===========kruskal算法=============================
void kruskal(int a[11][11],int(kpath)[11][11]){
cout”运用kruskal算法”endl;
int i,j,k,d;
int num=0;
edgeset edge[18];
//将邻接矩阵中权值大于1的边对应的点及权值存到一个边类
for(i=0;i11;i++){
for(j=i+1;j11;j++){
if(!a[i][j]==0){
edge[num].from=i;
edge[num].end=j;
edge[num].w=a[i][j];
num++;
}
}
}
edgeset tmp;
//===================================================
//=======将边按权值大小排序==========================
for(i=1;i18;i++){
for(j=0;j18-i;j++){
if(edge[j].wedge[j+1].w){
tmp=edge[j];
edge[j]=edge[j+1];
edge[j+1]=tmp;
}
}
}
//===================================================
int m1,m2;
edgeset c[11];
int s[11][11];
for(i=0;i11;i++)
for(j=0;j11;j++){
if(i==j)
s[i][j]=1;
else
s[i][j]=0;
}
k=1;
d=0;
int sum=0;
cout”通道铺设情况:(0-10分别对应点a-k)”endl;
while(k11){
for(i=0;i11;i++){
if(s[i][edge[d].from]==1)
m1=i;
if(s[i][edge[d].end]==1)
m2=i;
}
if(m1!=m2){
c[k-1]=edge[d];
cout”(“c[k-1].from”,”c[k-1].end”)”;
kpath[c[k-1].from][c[k-1].end]=c[k-1].w;
kpath[c[k-1].end][c[k-1].from]=c[k-1].w;
sum=sum+c[k-1].w;
k++;
for(j=0;j11;j++){
if(s[m2][j]!=0){
s[m1][j]=s[m2][j];
s[m2][j]=0;
}
}
}
d++;
}
coutendl;
cout”建设费用为:”sumendl;
//=============最小生成树的邻接矩阵输出==============
cout”最小生成树对应的邻接矩阵为:”endl;
for(int x=0;x11;x++){
for(int y=0;y11;y++){
coutkpath[x][y]” “;
}
coutendl;
}
}
void main(){
int h,z;
int a[11][11];
int path[11][11]={0};
//==============数据读入(图的邻接矩阵)=============
ifstream in(“picture.txt”);
for(h=0;h11;h++){
for(z=0;z11;z++){
ina[h][z];
}
}
//===================================================
cout”图的邻接矩阵:”endl;
for(int i=0;i11;i++){
for(int j=0;j11;j++){
couta[i][j]” “;
}
coutendl;
}
int kpath[11][11]={0};
int b[11][11];
ifstream in2(“picture.txt”);
for(h=0;h11;h++){
for(z=0;z11;z++){
in2b[h][z];
}
}
int ch;
cout”请选择算法(1:prim算法/2:kruskal算法):”;
cinch;
coutendl;
switch(ch){
case 1:prim(a,path);//调用prim算法函数
break;
case 2:kruskal(b,kpath);
break;
}
}
//希望对你有所帮助
c#中实例化到底是什么意思?
实例化可以简单理解为声明一个变量
声明变量总该知道吧。。
或许将“类”和“基本数据类型”进行类比会更好理解。。
比如:int a = 2, b = 3, c;c = a + b;将int看成一个类,变量abc看成int的对象,声明变量的过程就叫实例化。。
事实上int也是一个类,int a; 也可以写成 int a = new int(); 的。。
所以实例化一个类,就是为该类声明了一个变量,中华人民称其为对象。。
一个类只有在被实例化之后才是有意义的,才是真实存在的(static成员和方法例外)。。
也就是说,int a;,其中int是抽象的,a才是真是存储在内存中的。。
只有真实存在的东西才有可操作性,比如 c = a + b, 而不会有人写成 c = int + int。。
综上所述,类相当于一种数据类型,实例化的过程相当于声明变量的过程。。
当然。。这只是类比。。该叫实例化还得叫实例化哦。。显得专业嘛。。
至于有没有 new 的区别,就像 int a; 和 int a = 1; 的区别。。
Student stud; 在内存中为 stud 开辟了一段空间,但是此时该空间并没有东西,就好像是贴上一个标签告诉你这段空间只能用来存放 Student 类的对象。。Student stud = new Student(); 在贴标签的同时,给 stud 赋值了一个对象,就是new Student()
补充:C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows网络框架的主角。
C++编程时,我定义了一个结构体,再用这个结构体实例化一个对象。那么这个对象是不是也有this指针呢?
在C++中, struct和class之间的区别, 只是默认访问级别不同, 一个是public一个是private.
struct T{
int a;
int fun(){
return this-a; // 这句话等效于 return a;
}
};
关于c语言结构图实例化和c语言的结构化实现的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。