数据结构实验二---递归求结点个数

#include<iostream>
using namespace std;
typedef struct LNode *List;
struct LNode 
{
    int data;
    List next;
};
void Init(List &s)
{
    s = new LNode;
    s->next = NULL;
    
}
void CreatList(List &L, int n)
{
    List r, p;
    r = L;
    for (int i = 0; i < n; i++)
    {
        p = new LNode;
        cin >> p->data;
        r->next = p;
        r = p;
    }
    r->next = NULL;
}
int GetLength(List p)
{
    if (p->next== NULL)
        return 0;
    return 1 + GetLength(p->next);
}
int main()
{
    List a;
    int n;
    while (cin >> n && n != 0)
    {
        Init(a);
        CreatList(a, n);
        cout << GetLength(a) << endl;
    }
    return 0;
}

 

posted @ 2019-10-20 16:13  Tomorrow1126  阅读(259)  评论(0编辑  收藏  举报