随笔分类 - 数据结构与算法
摘要:定义: 一种可以实现“先进先出”的存储结构 队列类似于排队买票 分类: 链式队列:基于列表 静态队列:基于数组 静态队列通常都必须是循环队列 静态队列为什么是循环队列? 减少对内存的浪费 用传统数组来实现队列的话,参数只能加不能减 循环队列需要几个参数来确定以及各个参数的含义 需要两个参数来确定:f
阅读全文
摘要:栈的定义: 一种可以实现“先进后出”的存储结构 栈类似于箱子,先放进去的最后取出来,最后放入的先取出来 栈的分类: 静态栈的内核是数组 动态栈的内核是链表 栈的算法: 出栈 压栈 栈的应用: 函数调用 中断 表达式求值 内存分配 缓冲处理 迷宫 /* @file main.c @brief 线性结构
阅读全文
摘要:离散存储[链表]: 定义: n个结点的离散分配 彼此通过指针相连 每个结点只有一个前续结点 每个结点只有一个后续结点 首结点没有前续结点 尾结点没有后续结点 专业术语: 首结点:第一个有效结点,存放第一个有效数据 尾结点:最后一个有效结点,存放最后一个有效数据 头结点:在首结点之前的一个结点,既不存
阅读全文
摘要:typedef:是c语言的一个关键字,用于给已知数据类型取一个别名 例如typedef unsigned char uint8;此时 uint8 也就是 unsigned char 与define的区别: typedef只可用于对数据类型进行取新名字,define无此限制 typedef由编译器执行
阅读全文
摘要:线性结构:把所有的结点用一根线穿起来 连续存储[数组] 什么叫做数组:元素类型相同,大小相等 数组的优缺点: 优点:存取元素的效率非常高 缺点: 事先必须知道数组的长度 需要大块连续内存块 插入删除元素的效率极低 空间通常是有限制的 /* @file main.c @brief 线性结构之数组 @a
阅读全文
摘要:定义一块内存可以用数组定义,也可以动态分配: 使用数组定义一块内存,则该块内存是静态的,也就是一旦定义之后,这块内存的大小就固定了,例如,数组元素个数是5,则定义后,这=这块内存大小就是5,不能再改变 但是用malloc动态分配的话,这块内存的大小就由我们自己来定义了,例如定义大小为5的内存块,使用
阅读全文
摘要:为什么会出现结构体 为了表示一些复杂的数据,而普通的基本类型变量无法满足要求 什么叫结构体 结构体是用户根据实际需要自己定义的复合数据类型 如何使用结构体 普通结构体变量.成员变量 /* @file main.c @brief 数据结构预备知识之结构体学习 @author EricsT (Erics
阅读全文

浙公网安备 33010602011771号