回 帖 发 新 帖 刷新版面

主题:[讨论]什么是算法??

现在我开始学习数据结构,开始感觉还好学,可是学的多了感觉很不好学,什么是算法?我弄不懂,还有前插、后插等弄不懂。
还有,指针,总感觉这用指针更不好懂像这样的:
p=(node*)malloc(sizeof(node));
p->data=a;
q->next=p;
q=p;
后面的q=p不是多余的吗?

请高人指教!谢谢!!!

回复列表 (共2个回复)

沙发

首先你这里没有说明q是什么指针,还有q初始值是多少,但是我估计这里的q是链表的表尾指针。
p=(node*)malloc(sizeof(node));//开辟新的结点
p->data=a;//给新的结点赋值
q->next=p;//把新结点加入到链表中
q=p;//把刚才插入的新节点变为链表的表尾指针

板凳

你的程序用的是C语言。
你是不是没有学习C语言程序设计就直接学习数据结构了?
不知道什么是算法,大概是你的程序设计课程基础没有打好。
建议你学习《c程序设计》清华大学出版社 谭浩强著
这里第二章专门讲算法,很详细。给你摘录点:
1、数据结构+算法=程序;
2、计算机算法可分为两大类别:数值运算算法和非数值运算算法;
3、算法是解决“做什么”和“怎么做”的问题;
4、算法应该具有以下特点:有穷性、确定性、有零个或者多个输入、有一个或者多个输出,有效性。
5、广义的说,为解决一个问题而采取的方法和步骤就称为算法。

我来回复

您尚未登录,请登录后再回复。点此登录或注册