
编码基础
编码基础
四季帆
汽车电子、bsp
展开
-
循环队列
1. 循环队列的概念 在实际使用队列时,为了使队列空间能重复使用,往往对队列的使用方法稍加改进:无论插入或删除,一旦rear指针增1或front指针增1 时超出了所分配的队列空间,就让它指向这片连续空间的起始位置,自动从MaxSize-1增1变到0,可用取余运算rear%MaxSize和front%MaxSize来实现。这实际上是把队列空间想象成一个环形空间,环形空间中的存储单元循环使用,用这种方法管理的队列也就称为循环队列。 循环队列就是将队列存储空间的最后一个位置转而绕到第一个位置,形成逻辑上的环状原创 2021-06-06 15:47:10 · 833 阅读 · 0 评论 -
顺序队列
1. 队列的概念 在单链表中,我们只能对他的链表表尾进行插入,对链表的表头进行结点的删除,这样强限制性的链表,就是我们所说的队列。 通常,称进数据的一端为 队尾,出数据的一端为 队头,数据元素进队列的过程称为 入队,出队列的过程称为出队。 队列是一个线性的数据结构,并且这个数据结构只允许在一端进行插入,另一端进行删除,禁止直接访问除这两端以外的一切数据,且队列是一个先进先出的数据结构。 ...原创 2021-06-06 15:40:47 · 139 阅读 · 0 评论 -
栈
1. 概念 栈是限制插入和删除只能在一个位置上进行的线性表,用于插入和删除的一端位于表的末端,叫做栈顶(top),不允许插入和删除的另一端叫做栈底(bottom),栈底是固定不动的。对栈的基本操作有 PUSH(压栈)和 POP (出栈),压栈即插入操作(向栈顶插入一个元素),出栈即删除操作(删除一个栈顶元素),下面是一个栈的示意图: 2. 栈的实现 实现栈主要有两种方式,数组实现和链表实现。 2.1 数组实现 使用数组方式实现的栈叫静态栈,以下是C代码实现示例: #incl原创 2021-06-03 22:14:23 · 157 阅读 · 0 评论 -
成员变量和成员函数的区别
前言 最近在一个C++技术群里看到一个比较有意思的提问,作此记录 问题 为什么野指针可以访问到成员函数print_str(),并且执行打印出字符串"print_str"? 代码如下: #include <iostream> using namespace std; class student{ public: int a; void print_str(); void print_a(); }; void student::print_str() { cout <&原创 2021-05-12 11:23:11 · 537 阅读 · 0 评论 -
常见数据结构
数据结构优缺点对比 数据结构 优点 缺点 数组 可以快速的存取表中任意一位置元素 表长度不够灵活、插入/删除操作时需要移动大量的元素 链表 表长度灵活、可以随时插入/删除元素且不用移动大量元素 对某一个元素进行操作时必须从头进行遍历操作,效率比较低 ...原创 2021-05-11 15:20:45 · 91 阅读 · 0 评论 -
内存溢出之汉字使用
字符串在编程中使用的比较频繁,最近写代码时发现英文编码和中文编码有些不同,因为英文字母用一个字节(char类型)即可以表示出来(编码),但是中文用一个字节却表示不了(或者说一个字节的空间存不下一个汉字),以下为验证代码: #include <string.h> #include <stdio.h> int main() { char name1[3] = "阅读";...原创 2020-03-12 16:00:54 · 173 阅读 · 0 评论