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


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

    单链表的结构:

    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;
        }
    }
  • 相关阅读:
    人月神话阅读笔记
    12周总结
    IOS成长之路-用NSXMLParser实现XML解析
    沟通能力的表达
    IOS中UIScrollView的contentSize、contentOffset和contentInset属性
    Block 的使用时机
    drawAdapter
    drawpoly()函数的用法
    @synchronized(self)
    Swift2
  • 原文地址:https://www.cnblogs.com/tinaluo/p/5238566.html
Copyright © 2020-2023  润新知