当前位置: 首页 > article >正文

C语言链表

1.链表

什么是链表

链表是一种数据结构,是一种数据存放的思想

数组特点:元素地址连续

数组的缺点:增加、删除、改、查比较困难,特别是增加的时候,不够灵活

 链表的每一项都是一个结构体 

#include<stdio.h>
struct Test
{
    int data;
    struct  Test *next;
};
int main()
{
    int i;

    int arr[] = {1,2,3,4};
    for(i<0; i<sizeof(arr)/sizeof(arr[0]); i++){
        printf("%d  ",arr[i]);
    }
    putchar('\n');
    struct  Test t1 = {1,NULL};
    struct Test t2 = {2,NULL};
    struct Test t3 = {3,NULL};
    t1.next = &t2;
    t2.next = &t3;
printf("use t1 to print three nums\n");
printf("%d %d %d",t1.data,t1.next->data,t1.next->next->data);

    return 0;
}

2.链表的静态添加和遍历

 静态添加:

    struct  Test t1 = {1,NULL};
    struct Test t2 = {2,NULL};
    struct Test t3 = {3,NULL};
    struct Test t4 = {4,NULL};//静态添加只需要再定义一个结构体
    t1.next = &t2;
    t2.next = &t3;
    t3.next = &t4;//链表尾的next为下一个结构体的地址

 遍历:

void printLink(struct Test *head)
{
  struct Test *point;//定义一个节点来存储头结点
  point = head;
  while(1){
    if(point != NULL)//如果point == NULL说明已经到了链表的尾部
    { 
        printf("%d ",point->data);
        point = point ->next;//每打印一次,
    }
}
}

3.统计链表节点个数以及链表查找

3.1链表节点个数

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

 3.2链表查找

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

 4.链表的插入


http://www.kler.cn/a/132114.html

相关文章:

  • DevSeo Studio设置中文界面
  • ddd领域模型落地难
  • 【413.等差数列划分】
  • (c语言进阶)内存函数
  • redis-5.0.8主从集群搭建、不重启修改配置文件
  • YOLOv8-Seg改进:轻量级Backbone改进 | VanillaNet极简神经网络模型 | 华为诺亚2023
  • 完整版解答!2023年数维杯国际大学生数学建模挑战赛B题
  • 2023年咸阳市《网络建设与运维》赛题解析------四、安全配置
  • Python 爬虫入门
  • Django_学习_01
  • list用stream流转map报key重复
  • 一个用于操作Excel文件的.NET开源库
  • 【Android】设置全局标题栏
  • 对字符数组进行冒泡排序
  • Springboot+vue的学生成绩管理系统(有报告),Javaee项目,springboot vue前后端分离项目。
  • 23111702[含文档+PPT+源码等]计算机毕业设计javaweb高校宿舍管理系统寝室管理
  • Babyk勒索病毒数据集恢复,计算机服务器中了babyk勒索病毒怎么办?
  • IC设计企业,如何安全、可控、高效的传输设计文档和研发数据?
  • 如何解决小程序异步请求问题
  • 记一次用jlink调试正常,不进入调试就不能运行的情况