统计链表节点个数和链表查找

Posted 橙子果果

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了统计链表节点个数和链表查找相关的知识,希望对你有一定的参考价值。

统计链表节点个数和链表查找

先定义一个链表的结构体。

struct Test
{
        int data;
        struct Test *next;
};

静态创建一个链表

struct Test t1 = {1,NULL};
        struct Test t2 = {2,NULL};
        struct Test t3 = {3,NULL};
        struct Test t4 = {4,NULL};
        struct Test t5 = {5,NULL};

        t1.next = &t2;
        t2.next = &t3;
        t3.next = &t4;
        t4.next = &t5;

        struct Test *head;
        head=&t1;


链表节点统计

int getLinkTotalNodeNum(struct Test *head)
{
        int cnt = 0;
        struct Test *p = head;
        while(p != NULL){
        cnt++;
        p = p->next;
}
        return cnt;
}

int ret = getLinkTotalNodeNum(&t1);
        printf("total num = %d\\n",ret);

在这里插入图片描述


链表查找

int searchLink(struct Test *head,int data)
{
        while(head != NULL){
                if(head->data == data){
                return 1;
        }
                head = head->next;
}
        return 0;
}

int set = searchLink(&t1,1);
        if(set == 0){
                printf("no 1\\n");
        }else{
                printf("have 1\\n");
        }

        set = searchLink(&t1,19);
        if(set == 0){
                printf("no 19\\n");
        }else{
                printf("have 19\\n");
        }
        return 0;

最后输出结果
在这里插入图片描述

以上是关于统计链表节点个数和链表查找的主要内容,如果未能解决你的问题,请参考以下文章

结构体和链表

线性表,线性表和链表的区别

线性表-链表的实现--基于学生信息管理

内存对象管理器(基于数组和链表实现)

红黑树 回顾

leetcode删除链表的中间节点,快慢指针和链表转数组再转回链表