4-3 求链式表的表长

本题要求实现一个函数,求链式表的表长。

函数接口定义:

int Length( List L );
其中List结构定义如下:

typedef struct LNode *PtrToLNode;
struct LNode {
ElementType Data;
PtrToLNode Next;
};
typedef PtrToLNode List;
L是给定单链表,函数Length要返回链式表的长度。

裁判测试程序样例:

#include <stdio.h>
#include <stdlib.h>

typedef int ElementType;
typedef struct LNode *PtrToLNode;
struct LNode {
    ElementType Data;
    PtrToLNode Next;
};
typedef PtrToLNode List;

List Read(); /* 细节在此不表 */

int Length( List L );

int main()
{
    List L = Read();
    printf("%d\n", Length(L));
    return 0;
}
/* 你的代码将被嵌在这里 */

输入样例:

1 3 4 5 2 -1
输出样例:

5

#include <stdio.h>
#include <stdlib.h>

typedef int ElementType;
typedef struct LNode *PtrToLNode;
struct LNode {
    ElementType Data;
    PtrToLNode Next;
};
typedef PtrToLNode List;

List Read();

int Length( List L );

int main()
{
    List L = Read();
    printf("%d\n", Length(L));
    return 0;
}
List Read()  
{  
  int len = 0;
  int num = 0;
  PtrToLNode list = NULL;
  PtrToLNode last = NULL;

  scanf( "%d",&len );
  if(  len == 0  )
    return NULL;

  scanf( "%d",&num );
  list = ( PtrToLNode )malloc( sizeof( PtrToLNode ) );
  list->Data = num;
  list->Next = NULL;
  last = list;
  len--;
  while(  len ){
    scanf( "%d",&num );
    PtrToLNode node = ( PtrToLNode )malloc( sizeof( PtrToLNode ) );
    node->Data = num;
    node->Next = NULL;
    last->Next = node;
    last = node;
    len--;
  }
  return list;
}
int Length( List L ){
    if(L==NULL) return 0;
    else {
        int len=1;
        while(L->Next!=NULL){
        len++;
        L=L->Next;
        }
        return len;
    }
}

题目链接:

https://pta.patest.cn/pta/test/15/exam/3/question/726

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值