单链表求表长

Posted treeing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单链表求表长相关的知识,希望对你有一定的参考价值。

#include <stdio.h>
#include <stdlib.h>
typedef struct LNode *Node;  //定义指向LNode类型的指针Node
struct LNode {  //定义节点
    int data;  //存放数据
    Node next;  //指向下一指针
};
typedef NodeList;

List init(){
int d;  //存放从控制台输入的数值
LNode *q;  //定义指针q  
List L=(List)malloc(sizeof(LNode));  //向系统申请分配指定LNode个字节的内存空间
    L->Next=NULL;  //尾指针设为空
while((scanf("%d", &d))!=‘-1‘){  //等待用户输入(-1用于程序终止)
q=(LNode*)malloc(sizeof(LNode));  //继续开辟内存空间
q->data=d;  //向节点中data赋值
q->Next=L->Next;  //指向下一个节点
L->Next=q;  //指向新开辟的节点
}
return L;
}

int ListLength( List L ){
int j=0;
LNode *p;
p=L->Next;
while(p!=NULL)
{
p=p->Next;
j++;
}
return j;
}

int main()
{
    List L = init();
    printf("%d ", ListLength(L));
    return 0;
}









































以上是关于单链表求表长的主要内容,如果未能解决你的问题,请参考以下文章

什么叫带头结点的链表? 什么叫不带头结点的链表?

用C语言求线性表交集

剑指Offer---面试题37:两单链表中第一个公共节点

链表求差

线性表的实现--用通用方法实现线性表的初始化求表长插入元素删除元素等

单链表的基本实现