| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3063 人关注过本帖
标题:求一个顺序表中一个元素的前驱元素
只看楼主 加入收藏
chongxi
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-11-10
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
求一个顺序表中一个元素的前驱元素
Status PriorElem(Sqlist L,ElemType cure_e,ElemType &pre_e)//返回cure_e元素的前驱元素
{
    int i;
    for(i=1;i<L.length;i++)
    {
        if(cure_e==L.elem[i])
            pre_e=L.elem[i-1];
    }
    return OK;//怎么返回失败
}

请问这样写是对的么 可以返回pre_e么为什么运行不出来呢

typedef struct
{
    ElemType *elem;
    int length;
    int listsize;
}Sqlist;//定义顺序表
 
主函数里是这样的
printf("输入元素:");
    scanf("%d",&cure_e);
    PriorElem(L,cure_e,pre_e);
搜索更多相关主题的帖子: 元素 
2017-04-29 10:05
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:20 
你这个规则设置的就不好。。虽然说“写函数的时候尽可能应该遵循一个出口原则(即只用一个return)”,但是像这种一个函数也就4.5行,你写多一个return我觉得不见得能使程序变得多复杂、难以理解或者难以维护的
程序代码:
Status PriorElem(Sqlist L,ElemType cure_e,ElemType &pre_e)//返回cure_e元素的前驱元素
{
    int i;
/*   if(!L){printf("没有传入有效的有序列表!\n");return ERROR;}
     if(L.elem[0]==cure_e){printf("所查询的关键字在顺序表表头,没有前驱元素\n");return ERROR;}
*/


    for(i=1;i<L.length;i++)
    {
        if(cure_e==L.elem[i]){
            pre_e=L.elem[i-1];
        return OK;//如果成功就可以跳出此函数
        }

    }
    return ERROR;//能运行到这一步自然就说明顺序表中不存在要寻找的元素
} 






φ(゜▽゜*)♪
2017-05-01 07:39
chongxi
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-11-10
收藏
得分:0 
回复 2楼 书生牛犊
清楚啦谢谢~~~~~~
2017-05-03 14:44
快速回复:求一个顺序表中一个元素的前驱元素
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.086739 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved