输出单链表c语言代码,递归输出单链表

[c++]代码库#include

using namespace std;

typedef int ElemType; //假设线性表中的元素均为整型

typedef struct LNode

{

ElemType data;

struct LNode *next;

}LNode,*LinkList;

void ListCreate_L_Rec(LinkList &L,int n)

{

//递归边界:创建空表时只需将L赋空即可;

//递归关系:创建非空表时,将链表看做两部分:首元素组成的子表La, 第二个元素及其后元素构成的子表Lb。

//子表La容易创建(只需开辟一个节点)

//子表Lb由于规模小可以递归创建完成(类似数学归纳法的假设,只要小的都可以建设能完成)

//最后将两个子表拼接即可。

LNode *La, *Lb;

if(n==0) L=NULL;

else{

La=new LNode; //开辟子表La

cin>>La->data;

ListCreate_L_Rec(Lb,n-1 ); //递归创建子表Lb

La->next = Lb; //两个子表拼结

L=La; //第一个子表的地址赋给L。请思考为什这样处理不会使得主函数中的L取错值?

}

}

void ListPrint_L_Rec(LinkList L)

{

if(L==NULL)

return ;

else

{

cout<data;

ListPrint_L_Rec(L->next);

}

}

int main()

{

LinkList L;

int n;

cin>>n;

ListCreate_L_Rec(L,n);

ListPrint_L_Rec (L);

return 0;

}

694748ed64b9390909c0d88230893790.png

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值