【软/自考】算法写作思路

        算法的写就,与小学的解应用题很像。应用题会给出已知条件,问题,让你分析已知条件,利用公式或者定理来解决问题,解除答案。函数的写法是如此相似。

        看看函数的结构体:返回值类型 函数名(参数列表){函数体}

        返回值类型是最终答案的数据类型,函数名代表解决的什么问题,参数列表表示已知条件,函数体就是需要我们编写的解题步骤。

        拿线性表的定位运算LocateSeqlist(SeqList L,DataType x)来分析。定位运算的功能是查找出线性表L中值等于x的结点序号的最小值,当找不到值为x的结点时,返回结果0.

        从功能描述就已知条件:线性表L和x的值已知。线性表L已知就是说线性表相应的属性,比如长度,表中各个结点的值,都是已知的。

        求解结果是:某结点序号。

        已知分析:

        1、我们知道线性表是存储在数组中的,因此下标i与长度L.length的关系为:min(i)=L.length-1.

        2、根据下标,我们就可以知道对应的结点值。

        3、要找与x值相等的结点的序号,就要比较值的大小。要找与x值相等的结点的序号的最小值,而不是任意一个相等的值的序号,就要从序号最小的位置的值开始比较,以此向后比较,找到第一个相等的值,取出下标(序号)。返回就得到了结果。

        4、从开头到依次比较,就用到了循环。

        5、如果循环结束了,还没有找到相等的值,就返回0。“如果”出现了,一定是用到了分支判断语句。if或者switch,根据情况决定。

 

int LocateSeqlist(SeqList L,DataType x)
{
    int i=0;
    while((i<L.length)&&(L.data[i]!=x)) //在顺序表中查找值为x的结点
            i++;
    if(i<L.length) return i+1; //若找到值为x的元素,返回元素的序号
    else return 0;    //未查找到值为x的元素,返回0
}


        鄙人拙见,还请斧正。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 37
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 37
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值