王清欢Randy 王清欢Randy
首页
  • 编程语言

    • C/C++ 学习笔记
    • Golang 学习笔记
  • 算法分析

    • LeetCode 刷题笔记
  • 操作系统

    • Linux 基础
    • Vim 实用技巧
    • Shell 脚本编程
    • GDB 学习笔记
  • 开发工具

    • Git 学习笔记
  • 分布式理论

    • 共识算法
    • 分布式事务
  • 数据库内核

    • PostgreSQL
    • Postgres-XL
  • hidb
  • pgproxy
  • 实用技巧
  • 学习方法
  • 资源分享
GitHub (opens new window)
首页
  • 编程语言

    • C/C++ 学习笔记
    • Golang 学习笔记
  • 算法分析

    • LeetCode 刷题笔记
  • 操作系统

    • Linux 基础
    • Vim 实用技巧
    • Shell 脚本编程
    • GDB 学习笔记
  • 开发工具

    • Git 学习笔记
  • 分布式理论

    • 共识算法
    • 分布式事务
  • 数据库内核

    • PostgreSQL
    • Postgres-XL
  • hidb
  • pgproxy
  • 实用技巧
  • 学习方法
  • 资源分享
GitHub (opens new window)
  • C语言基础

    • 数据类型
    • 指针与字符串
    • 结构类型
    • 链表
      • 4.1可变数组
      • 4.2链表
    • 程序结构
    • 文件
  • C++面向对象编程

    • C++面向对象

      • 从 C 到 C++
      • C++ 类和对象基础
      • C++ 构造函数与析构函数
      • C++ 类和对象提高
      • 运算符重载
      • C++ 继承
      • C++ 多态
    • C++ STL

      • C++ 输入输出流
      • C++ 泛型编程
      • C++ string类
      • C++ 标准模板库 STL 概述
      • C++ 标准模板库 STL 顺序容器
      • C++ 标准模板库 STL 函数对象
      • C++ 标准模板库 STL 关联容器
      • C++ 标准模板库 STL 容器适配器
    • C++ 新特性

      • C++11 新特性
  • C&Cpp学习笔记
  • C语言基础
王清欢
2023-11-18
目录

链表

# 链表

# 4.1可变数组

  • 数据结构线性表的顺序结构4.1.1

    typedef struct {
        int *array;
        int size;
    }Array;
    
    Array arrayCreate(int arrraySize);
    void arrayFree(Array *a);
    int arraySize(const Array *a); //封装类型属性
    int* arrayAt(Array *a,int index); //返回指针 *arrayAt(&a,0) = 10; 可以直接对指定位置赋值
    /*
    	arrayAt()可以使用 arrayGet()和arraySet()一对方法来替换
    	void arrayGet(Array *a,int index);
    	void arraySet(Array *a,int index,int value);
    */
    void arrayInflate(Array *a, int moreSize); //改变数组大小 重新申请空间 并将原始数据拷贝 
    
    //按照block的大小增长
    int* arrayAt(Array *a, int index)
    {
        if(index >= a->size)
        {
            arrayInflate(a,(index/BLOCK_SIZE+1)*BLOCK_SIZE-a->size);
        }
        return &(a->array[index]);
    }
    

# 4.2链表

  • 数据结构线性表的链式结构4.2.1

    typedef struct LNode{
        int value;
        struct LNode *next;
    }Linklist;
    
    int initList(Linklist *L);
    void creatListHead(Linklist *L);
    void createListTail(Linklist *L):
    int lengthList(const Linklist *L);
    int getElem(const Linklist *L, int i, int *e); //查
    int insertList(Linklist *L, int i, int e); //增
    int deleteList(Linklist *L, int i, int *e); //删
    int updateList(Linklist *L, int i, int *e); //改
    int freeList(Linklist *L);
    int displayList(const Linklist *L);
    
    
上次更新: 2023/11/19, 12:55:48
结构类型
程序结构

← 结构类型 程序结构→

Theme by Vdoing | Copyright © 2023-2024 Wang Qinghuan | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式