读书人

100分求解3题简单C语言题解决思路

发布时间: 2012-02-12 17:16:34 作者: rapoo

100分求解3题简单C语言题
1)消除尾递归的方法,基本思想以及例题(即简单又能表达其思想最好)

2)请教下那些有工作经验的朋友,在学校学习的东西,应该怎样才能与实际联系起来呢?

3)表的搜索游标例子,哪位朋友电脑有保存数据结构这个程序的,复制过来下,谢谢!“插入函数”要求可以对表首,表尾和表中间插入结点

[解决办法]
2):写demo,做工程,我开始时是写游戏,写日常中用得到的程序,比如扫雷,贪食蛇,闹钟,记帐的软件等

1,3,两个问题楼主可否描述得清楚点???
[解决办法]
问题2: 我刚开始学的时候也是这样想的,但以后自己试着做一些题目就觉得自己学的知识与实践有了些联系。你自己可以试试做一些题目,与实际问题有关的。!!!
[解决办法]
尾递归的消除在方法上来讲很简单,考虑下面的例子
void func (int a)
{
if (满足中止条件)
return;

//略去若干操作,这里a的值将改变,否则会陷入循环
func (b); //递归调用func,b为某个变量,或者表达式
}

现在考虑使用尾递归技术来消除最后的func调用,即
void func (int a)
{
while (不满足中止条件)
{
//略去若干操作,这里a的值将改变

a = b; //b的意义同上
}
}
[解决办法]
to fflush(stdin):

谢谢哦,有豁然开朗的感觉。能再给个例子吗?越简单越能体现思想越好。
////////////////////////////////////////////////////////////////////////////////////
// < <数据结构与算法分析(C++描述)> > 上的一个例子:
//打印一个容器中所有的元素
//尾递归的方法:
template <typename Iterator>
void print (Iterator start,Iterator end,ostream& out=cout)
{
if (start==end)
return;
out < <*start++ < <endl;
print(start,end,out);
}
//改用循环的方法:
template <typename Iterator>
void print (Iterator start,Iterator end,ostream& out=cout)
{
while(true)
{
if (start==end)
return;
cout < <*start++ < <endl;
}
}
////////////////////////////////////////////////////////////////////////////////////

读书人网 >C语言

热点推荐