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

学习笔记——C语言基本概念链表——(12)

在介绍链表之前先介绍一下数据结构的分类:

线性结构:数组,链表,栈,队列

顺序结构:数组

链式结构:链表

非线性结构:树,二叉树

1、链表

特点:利用碎片化空间。

链表组成:由节点组成

节点组成:

数据域--真正要存放的数据

指针域--下一个节点的地址

节点的定义:

第一种: 直接定义

struct NODE
{char name[32];int id;float score;struct NODE *addr; //下一个节点的地址
};


第二种:
先定义数据域, 再定义节点

//定义数据域
struct Stu
{char name[32];int id;float score;
};
//定义指针域
struct NODE
{struct Stu stu; //数据域struct NODE *addr;//指针域, 下一个节点的地址
}

回顾一下指针的定义:

1>int *p = NULL;
2>int num = 100; int *p=#
3>char buf[32]={0}; char *p=buf;
4>char *p = “hello”;

由链表的引入又有了新的指针定义:
1》 malloc函数 -- 开辟空间

头文件:#include <stdlib.h>

void *malloc(size_t size);
形参: size -- 要开辟空间的大小
返回值:
成功: 返回开辟好的空间的首地址, void * -- 万能指针, 可以随意的强转为你想要的
类型
失败: NULL
int *p = (int *)malloc(sizeof(int));

2》 void free(void *ptr);
        形参: 要释放的空间的首地址;
        返回值: void -- 无返

3》 memset -- 内存清理函数
        #include <string.h>
        void *memset(void *s, int c, size_t n);
        形参: s -- 你要清理的空间的首地址
        c -- 0
        n -- 清多大, sizeof
        返回值: 就是第一个参数

2、双向链表

组成:节点--数据域和指针域(存放上一个和下一个节点的地址)

定义格式:

struct Stu
{char name[32];int id;float score;
};
struct NODE
{struct Stu stu; //数据域struct NODE *front; //指针域, 上一个节点的地址struct NODE *next; //指针域, 下一个节点的地址
}

图示:

循环链表:
单向循环
双向循环

http://www.lryc.cn/news/335247.html

相关文章:

  • 开发环境解决跨域问题
  • 物理服务器与云服务器的租用对比
  • Ubuntu Desktop Server - Resource temporarily unavailable
  • 用Wireshark工具对gRPC接口进行本地抓包
  • 科技动态人工智能应用太空探索生物科技
  • 如何让MacOS「终端」走代理
  • 数码相框-显示JPG图片
  • PHP自带的密码加密函数Password_verify 和password_hash
  • UVA1596 Bug Hunt 找Bug 解题报告
  • Java编程题 | 提取整数的特定位数
  • 设置你的第一个React应用
  • 【黑马头条】-day07APP端文章搜索-ES-mongoDB
  • SSL数字证书
  • 番茄 abogus rpc调用
  • CSS设置元素的宽高比
  • jenkins+docker实现可持续自动化部署springboot项目
  • 【LAMMPS学习】八、基本知识的讨论(1.8)键的断裂
  • GPT提示词分享 —— 中医
  • 什么的零日攻击,如何防御零日攻击
  • MySQL 建表语句详解
  • 【Linux】虚拟化技术docker搭建SuitoCRM系统及汉化
  • P8707 [蓝桥杯 2020 省 AB1] 走方格
  • Window安装PostgresSQL
  • 竞赛升温,量子革命待发
  • 登录压力测试
  • Linux服务器上搭建深度学习环境(安装anaconda、创建虚拟环境、安装pytorch)
  • SRNIC、选择性重传、伸缩性、连接扩展性、RoCEv2优化(六)
  • 【神经网络】生成对抗网络GAN
  • 智慧能耗预付费系统解决方案——用户侧能源计量及收费
  • 探秘大模型:《提示工程:技巧、方法与行业应用》背后的故事