请高手帮我把下面的程序改成伪代码谢谢了 急用
ALGraph*CreateUDN(ALGraph*G)//邻接表建立无向网{inti,s,d,w;ArcNode*p,*q;printf("请输入节点数和边的数目\n"...
ALGraph * CreateUDN(ALGraph *G) // 邻接表建立无向网
{
int i,s,d,w;
ArcNode *p, *q;
printf("请输入节点数和边的数目\n");
scanf("%d%d",&(*G).vexnum,&(*G).arcnum); // 输入结点数目和边数
getchar();
printf("请输入所有节点\n") ;
for(i=1; i<=(*G).vexnum; i++) //输入顶点
{scanf("%c",&(*G).vertices[i].data); // 输入顶点
getchar();
(*G).vertices[i].firstarc = NULL; // 首先初始化为NULL
}
for(i=1; i<=(*G).vexnum; i++) // 跳数初始化为最大
{
(*G).vertices[i].hopnum=65535;
}
for(i=1; i<=(*G).vexnum; i++) //父节点初试化设为空
{
for(int j=0; j<10; j++)
(*G).vertices[i].father[j]=NULL;
}
for(i=1; i<=(*G).vexnum; i++)
for(int m=0; m<10; m++)
{ (*G).vertices[i].R[m].ID=NULL;
(*G).vertices[i].R[m].hopcount=NULL;
}
for(i=1; i<=(*G).vexnum; i++)
{
(*G).vertices[i].f=0;
(*G).vertices[i].r=0;
}
printf("依次输入一条边依附的起点序号终点序号和权值\n");
for(i=1; i<=(*G).arcnum; i++)
{
scanf("%d%d%d",&s,&d,&w); // 输入一条边依附的起点序号和终点序号
getchar();
printf("\n");
p = (struct ArcNode *)malloc(sizeof(struct ArcNode));
q = (struct ArcNode *)malloc(sizeof(struct ArcNode));
p->info = (int )malloc(sizeof(int));
q->info = (int )malloc(sizeof(int));
p->adjvex = d; // 保存该弧所指向的顶点位置
q->adjvex = s; //保存该弧所指向的顶点位置
(p->info) = w; // 保存权值到一个结点里
(q->info) = w; //保存权值到一个结点里
p->nextarc = (*G).vertices[s].firstarc;
(*G).vertices[s].firstarc = p;
q->nextarc = (*G).vertices[d].firstarc;
(*G).vertices[d].firstarc = q;
}
return G;
} 展开
{
int i,s,d,w;
ArcNode *p, *q;
printf("请输入节点数和边的数目\n");
scanf("%d%d",&(*G).vexnum,&(*G).arcnum); // 输入结点数目和边数
getchar();
printf("请输入所有节点\n") ;
for(i=1; i<=(*G).vexnum; i++) //输入顶点
{scanf("%c",&(*G).vertices[i].data); // 输入顶点
getchar();
(*G).vertices[i].firstarc = NULL; // 首先初始化为NULL
}
for(i=1; i<=(*G).vexnum; i++) // 跳数初始化为最大
{
(*G).vertices[i].hopnum=65535;
}
for(i=1; i<=(*G).vexnum; i++) //父节点初试化设为空
{
for(int j=0; j<10; j++)
(*G).vertices[i].father[j]=NULL;
}
for(i=1; i<=(*G).vexnum; i++)
for(int m=0; m<10; m++)
{ (*G).vertices[i].R[m].ID=NULL;
(*G).vertices[i].R[m].hopcount=NULL;
}
for(i=1; i<=(*G).vexnum; i++)
{
(*G).vertices[i].f=0;
(*G).vertices[i].r=0;
}
printf("依次输入一条边依附的起点序号终点序号和权值\n");
for(i=1; i<=(*G).arcnum; i++)
{
scanf("%d%d%d",&s,&d,&w); // 输入一条边依附的起点序号和终点序号
getchar();
printf("\n");
p = (struct ArcNode *)malloc(sizeof(struct ArcNode));
q = (struct ArcNode *)malloc(sizeof(struct ArcNode));
p->info = (int )malloc(sizeof(int));
q->info = (int )malloc(sizeof(int));
p->adjvex = d; // 保存该弧所指向的顶点位置
q->adjvex = s; //保存该弧所指向的顶点位置
(p->info) = w; // 保存权值到一个结点里
(q->info) = w; //保存权值到一个结点里
p->nextarc = (*G).vertices[s].firstarc;
(*G).vertices[s].firstarc = p;
q->nextarc = (*G).vertices[d].firstarc;
(*G).vertices[d].firstarc = q;
}
return G;
} 展开
展开全部
你既然喜欢编程,就应该认认真真的学习一门语言,先从VB开始,VB是比较好的入门语言,可视化的,比较简单,是非常好的入门语言。书籍最少应该准备两本,不可能一本书籍会包含VB的所有内容,在看书的时候,可以交叉的看,一本书籍中没有讲到的内容可以在另一本中看到,这样对学习是很有好处的,也能保证所学知识的完整性。学编程是一个很漫长的过程,不要着急,要理论与实践想结合,例程书籍也是很重要的,看源代码对学习也是很有帮助的,等你学完这门VB语言之后,学习别的语言是非常简单,可以尝试C语言,按照C——C++——VC的顺序学习,有助于知识的连贯性,我也希望你能学好的。
学习C语言,谭浩强的《C程序设计》是一部非常好的C语言书籍,学习程序设计是一个非常漫长的过程,不要着急,一本书多看两遍三遍,学会交叉学习法,在学习C的过程中,可以看看数据结构,编译原理,操作系统等书籍,对编成都是很有帮助的。最开始学习的时候,先不要编一些比较大的程序,多编一些小程序,比如数组运算,字符组合等等,指针是C语言的精华,是比较复杂的部分。如果有一天你能熟练驾驭指针的操作了,我相信你,你一定能学习好C语言的。
我是2001年接触编程的,刚开始只是大概了解一下,并没有进行比较深入的学习,我是从VB开始入门的,学了1年多,然后转入C语言,按照C——C++——VC的顺序学习,C学了两年,现在开始学习C++,C++的学习是很有难度的,类,标准库,多态,继承等等比较抽象难道懂的概念,虽然他秉承了C语言的风格,但是有很多很多是C语言不具备的,要多看书,上机实践也是必不可少的。《C++编程思想》,《C++标准库》,这些书都非常好,内容也很全面,例程书籍也是必不可少的,多看源代码对编程是很有帮助的,也会少走很多弯路。总之,C++的学习是一个比较漫长的过程,大概需要两年的时间,这只是底限,如果想学通,学精,还需要更多的时间。
我向你推荐一些C++经典书籍:
c++程序设计教程
c++编程思想
c++大学教程
c++程序设计语言
数据结构算法与应用c++语言描述
c++标准模板库------自修教程与参考手册
泛型编程与STL
深度探索c++对象模型
设计模式---可复用面向对象软件的基础
重构---改善既有代码的设计
Essential c++
Effective c++
More Effctive c++
C++ primer
前五本应该属于入门书籍,后面的属于学习难度比较大的,想提高C++的编程能力,看看这些书籍有好处。建议你把编程思想这本书多看看。多做练习题,对提高编程水平的帮助是很大的。
其实语言是相通的,一门语言学会了,学习其他语言就比较容易了。
业界有这样一种说法,因为JAVA这门语言包含了C++的一些特性,掌握了C++,就等于掌握了JAVA的80%,
在掌握了C++之后(我说的掌握指的是,可以熟练用C++编程序了,并没有要求你完全掌握C++的所有部分,没有人能达到这一点,因为C++太庞大了,如果能坚持不懈的学习C++两年到三年的时间了,你就可以学习其他的语言了)可以试着学习一些其他的语言,如JAVA,VC++等等比较复杂的语言.
这时候可以说你已经对程序设计语言有个大体的认识了,可以明确自己学习的方向,根据自己的学习情况而定,是学习一些自己比较感兴趣的语言啊(从兴趣出发),还是为了找工作啊,开始进行更深入的学习.比如学习windows下的框架编程和.net编程等等比较复杂的语言.
如果是为了找工作的话我建议你学好C,C++,JAVA三门语言.
在我国目前的软件开发行业中,北方C,C++,JAVA的需求量是非常大的.南方以VB为主.
关于英语对学习程序设计有没有帮助的文章这个话题已经有很多人议论过了,我个人建议把计算机专业术语弄明白了就可以了,你可以买一本计算机英语教程看一看,对程序设计是有帮助的。其实程序设计当中的英文都是一些非常简单的,如for,else,while.......并没有太高深的,而且学习程序设计不像学习网络,如CCNA这类认证需要掌握大量的英文。但是在学习程序设计的时候身边有两个工具应该足够了-----------金山词霸,计算机词典。相信你一定能学好程序设计的。
学习数学和学习程序设计有一个共同点------锻炼逻辑思维能力。在程序设计的学习中涉及到数学的地方并不多,所以也没有必要去认真的学习数学也可以学好程序设计的。
如果你是一个肯吃苦,肯用心学习程序设计的人,具有坚持不懈的精神的人,我相信,只要你认认真真去学,即使你的英语数学水平再差,你也一定能够学好程序设计的。
我是一名大三的学生,我也正在学习C++这门语言,一年多的时间,学习的感觉真的很累的,希望能和你成为朋友!
好了,说了这么多,可以参考一下,为自己做个学习计划,要对自己有信心,最后祝你在学习编程的道路上走的更好更远,祝你学有所成!!
AiPPT
2024-09-19 广告
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图...
点击进入详情页
本回答由AiPPT提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询