1.数据结构与算法思路,算法思路是要写什么
这里估计你们老师需要你们写出每个函数的作用,下面我就给你简单写一下
1.InitList
这个主要是初始化列表,将头结点置空
2.InsertList_Tail
在列表尾部插入一个节点,首先构造节点,成功后判断列表是否为空,如果为空则将当前构造的节点作为头结点,如果不为空,则遍历链表到尾节点,在列表的最后插入一个新节点
3.InsertList_Head
在原列表的头部插入一个节点,也就是在HL->head和HL->next之间插入一个新节点
4.OutList
从头结点开始,遍历输出所有节点的data。
5.InvertList
逆置链表,如原来是n1->n2->n3逆置后为n3->n2->n1
6.Find_Min
找出链表中最小元素值,首先把min初始化一个大于链表中所有节点值的值,如1000000,然后遍历链表中的所有节点,取出节点的data与min进行比较,如果data小于min,则更新min为当前的data,否则min不变,继续遍历后面的元素
7.DeleteList
删除链表中节点值为指定值的节点,在这里注意在遍历查找指定节点时要始终保存上一个元素,如原始链表为n1 n2 n3 n4 n5,那么要删除n3时,你需要有一个指针指向n2,这样可以直接改变n2->next=n3->next
8.main
main方法使用尾插法建立链表,并调用上面的方法做实验
2.算法的过程怎么写啊
算法的流程书写可通过流程图或伪代码来完成。
所谓流程图是指以特定的图形符号加上说明,表示算法的图,用它来表示算法思路是一种极好的方法,因为有时候千言万语不如一张图形象生动易于理解,例如:
而伪代码是介于自然语言和计算机语言之间的文字和符号(包括数学符号),它是一种不依赖于语言、用来表示程序执行过程、而不一定能编译运行的代码,例如:
Begin(算法开始)
输入 A,B,C
IF A>B 则 A→Max
否则 B→Max
IF C>Max 则 C→Max
Print Max
End (算法结束)
3.请教编程高手:如何培养编写算法的思路
"对于一道编写算法的题,在读正确答案之前,我都有认真思考的过程,但是思路就是很混乱"这是很正常的,再猛的高手遇到问题也不会一目了然的,要有一个整理思路的过程,画框图是一个很好整理思路的过程,思想混乱说明你的思维比较敏感,对每一个问题都会不由自主进行一下发散思考,太多的分支结果导致混乱,就像你进入了一个出不来的递归一样,说了这么多费话,想要表达的意思就是说,只要你不断的去写code,你会发现你在不知不觉中思路就清晰起来了,比如编一个聊天室,你立刻就会知道大体需要哪几个模块,当你自己很彻底地编出一个聊天室了,再去写一个像QQ里面在线纸牌游戏的时候,思路就会立刻清晰起来,因为他们的原理差不多,只不过纸牌客户端复杂一点而已,又说了一堆费话在,我是想说,当然只是个人观点,经验在编程过程中是非常重要的,所以你的混乱的问题不是问题,加油
=====================================================================
偶不是专业写程序的,目前自学写点程序只是兴趣,所以水平有限,只是自身的一点感受。
1 程序事例,有代表性的看一点就够了,
2 一门语言的语法基础的东西要非常熟练
3 闭门造车,自己写程序,写属于自己的程序,写一些小游戏,如果不会就从最简单的开始写,10以内的乘法口决,各种常见的数学计算公式实现(如阶乘),计算器,猜数字,扫雷,等等等等
总之,只有自己写了,才会有自己的思路,你读别人的程序就是像背诵别人的文章,如果不写自己的文章,永远也不会有自己的风格
4.算法的过程怎么写啊
算法的流程书写可通过流程图或伪代码来完成。
所谓流程图是指以特定的图形符号加上说明,表示算法的图,用它来表示算法思路是一种极好的方法,因为有时候千言万语不如一张图形象生动易于理解,例如:而伪代码是介于自然语言和计算机语言之间的文字和符号(包括数学符号),它是一种不依赖于语言、用来表示程序执行过程、而不一定能编译运行的代码,例如:Begin(算法开始)输入 A,B,CIF A>B 则 A→Max否则 B→MaxIF C>Max 则 C→MaxPrint MaxEnd (算法结束)。
5.C语言编程思路,算法思路
#include<stdio.h>
#include<conio.h>
main()
{
int i,j,k=65;//A=65,B=66,C=67等逐渐递增!!(ASCII码)
for(i=12;i>0;i-=2)
/*因为A共有12个,所以我令i=12,又因为个数是以等差值为2逐渐递减的,所以i-=2*/
{
for(j=i;j>0;j--)//这循环主要控制空格和k的值
printf("%c",k);//以符号形式输出k的值
printf(" ");
k+=1;
}
printf("\n");
getch();
}
我的代码跟“柏拉图的永恒”的补充答案差不多!!
我讲的不是很清楚,你还是看着代码,用大脑自己运行吧,没准就明白了!
6.如何写一个算法
算法是在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗点说,就是计算机解题的过程。在这个过程中,无论是形成解题思路还是编写程序,都是在实施某种算法。前者是推理实现的算法,后者是操作实现的算法。
一个算法应该具有以下五个重要的特征:
1、有穷性: 一个算法必须保证执行有限步之后结束;
2、确切性: 算法的每一步骤必须有确切的定义;
3、输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定除了初始条件;
4、输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;
5、可行性: 算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。
当遇到一个算法问题时,首先要知道自己以前有没有处理过这种问题.如果见过,那么你一般会顺利地做出来;如果没见过,那么考虑以下问题:
当遇到一个算法问题时,首先要知道自己以前有没有处理过这种问题.如果见过,那么你一般会顺利地做出来;如果没见过,那么考虑以下问题:
1. 问题是否是建立在某种已知的熟悉的数据结构(例如,二*树)上?如果不是,则要自己设计数据结构。
2. 问题所要求编写的算法属于以下哪种类型?(建立数据结构,修改数据结构,遍历,查找,排序。)3.
分析问题所要求编写的算法的数学性质.是否具备递归特征?(对于递归程序设计,只要设计出合理的参数表以及递归结束的条件,则基本上大功告成.)4.
继续分析问题的数学本质.根据你以前的编程经验,设想一种可能是可行的解决办法,并证明这种解决办法的正确性.如果题目对算法有时空方面的要求,证明你的设想满足其要求.一般的,时间效率和空间效率难以兼得.有时必须通过建立辅助存储的方法来节省时间.5.
通过一段时间的分析,你对解决这个问题已经有了自己的一些思路.或者说,你已经可以用自然语言把你的算法简单描述出来.继续验证其正确性,努力发现其中的错误并找出解决办法.在必要的时候(发现了无法解决的矛盾),推翻自己的思路,从头开始构思.6.
确认你的思路可行以后,开始编写程序.在编写代码的过程中,尽可能把各种问题考虑得详细,周密.程序应该具有良好的结构,并且在关键的地方配有注释.7.
举一个例子,然后在纸上用笔执行你的程序,进一步验证其正确性.当遇到与你的设想不符的情况时,分析问题产生的原因是编程方面的问题还是算法思想本身有问题.
8. 如果程序通过了上述正确性验证,那么在将其进一步优化或简化。
9. 撰写思路分析,注释.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------看不懂,还是不明白,有谁清楚告诉我啊,