| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1581 人关注过本帖
标题:求教一个递归链表操作的问题
只看楼主 加入收藏
小焦叔叔
Rank: 1
来 自:广西 河池
等 级:新手上路
帖 子:59
专家分:2
注 册:2020-2-15
结帖率:78.57%
收藏
已结贴  问题点数:20 回复次数:4 
求教一个递归链表操作的问题
我在网上看到一些递归链表操作的例程,有一个小问题想不通,特来向高手们求教:
没有返回值的递归函数有没有回归过程?比如:下面程序片段里的正向输出和反向输出。


struct Link
{
    unsigned int dat;
    struct Link *next;
};

typedef struct Link Link;

Link *head;

void P_PrintLink(Link *head)
{
    if(head)
    {
        printf("%d\n",head->dat);
        P_PrintLink(head->next);
    }
}

void I_PrintLink(Link *head)
{
    if(head)
    {
        I_PrintLink(head->next);
        printf("%d\n",head->dat);
    }
}


[此贴子已经被作者于2020-3-28 13:18编辑过]

搜索更多相关主题的帖子: 递归 操作 Link head 链表 
2020-03-28 13:05
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1705
专家分:4345
注 册:2007-12-27
收藏
得分:20 
没有返回值它也是函数啊
常规函数肯定是从哪儿来的就回哪儿去
没有返回值只不过是调用过程的现场保护和恢复工作量小了点

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2020-03-28 21:56
小焦叔叔
Rank: 1
来 自:广西 河池
等 级:新手上路
帖 子:59
专家分:2
注 册:2020-2-15
收藏
得分:0 
void I_PrintLink(Link *head)
{
    if(head)
    {
        I_PrintLink(head->next);   //①
        printf("%d\n",head->dat);  //②这里想不明白
    }
}

上面的函数里,我想不明白回归的时候,函数从①运行到②了,又怎样返回到上一级的①的?

自学成才
2020-03-29 13:08
小焦叔叔
Rank: 1
来 自:广西 河池
等 级:新手上路
帖 子:59
专家分:2
注 册:2020-2-15
收藏
得分:0 
递归链表操作是我新学的东西,不懂多少,请见谅!

自学成才
2020-03-29 13:10
小焦叔叔
Rank: 1
来 自:广西 河池
等 级:新手上路
帖 子:59
专家分:2
注 册:2020-2-15
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册


是这样理解的吧?

自学成才
2020-03-29 13:23
快速回复:求教一个递归链表操作的问题
数据加载中...
 
   



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

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