*单链表[递归&不带头结点]

不带头结点的单链表,递归法比较简明!(必背!)

单链表的结构:

typedef struct node{
        int data;
        struct node *next;
}*List,Node;

创建
第一种方法:递归的终止条件:e为0

void CreatList(List &T)
{
  int e;
cin>>e;   
if(e==0)     T=NULL;   else   {     T=(List)malloc(sizeof(Node));     T->data=e;     CreatList(T->next);   } }

第二种方法,创建n个节点,中止条件:n==0

 1 void CreatList(List &L,int n)
 2 {
 3     int a;    
 4     if(n==0)
 5     {
 6         L=NULL;
 7     }
 8     else
 9     {       cin>>a;
10             L=(List)malloc(sizeof(Node));
11             L->data=a;
12             CreatList(L->next,--n);
13     }
14 }

遍历

void Traverse(List &L)
{
    if(L)
    {
        cout<<L->data<<" ";
        Traverse(L->next);
    }
}

查找

int GetElem(List &L,int e)/* 0成功,-1失败*/
{
    while(L)
    {
        if(L->data==e)
        return 0;
        L=L->next;
    }
    return -1;
}

销毁

  void DestoryList(List &L)
{
    if(L)
    {
        DestoryList(L->next);
        free(L);
        L=NULL;
    }
}

 

转载于:https://www.cnblogs.com/tinaluo/p/5238566.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值