![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 55
__乔木
人是铁,学习是钢
展开
-
无锁队列的实现(陈皓)
在开始说无锁队列之前,我们需要知道一个很重要的技术就是CAS操作——Compare & Set,或是 Compare & Swap,现在几乎所有的CPU指令都支持CAS的原子操作,X86下对应的是 CMPXCHG 汇编指令。有了这个原子操作,我们就可以用其来实现各种无锁(lock free)的数据结构。这个操作用C语言来描述就是下面这个样子:(代码来自Wikipedia的Compare And Swap词条)意思就是说,看一看内存*reg里的值是不是oldval,如果是的话,则对其赋值ne转载 2022-05-21 15:41:34 · 766 阅读 · 0 评论 -
数据结构--c++实现括号匹配
基本算法输入一串括号字符串,从左往右扫描,若遇到左括号则入栈,若遇到右括号则从栈顶出栈一个括号(肯定是左括号),然后与其匹配。代码实现#include<iostream>#include<string>using namespace std;const int MaxSize=10;struct Stack{ char data[MaxSize]; int top; //栈顶指针 /* data */};bool init(Stack &原创 2021-05-11 12:28:47 · 2874 阅读 · 2 评论 -
数据结构(c/c++)—循环队列的判断空满方式
文章目录前言队列的数据结构初始化一、舍弃空间二、不舍弃空间1.计数器2.设置标志位前言我们这里一共三个方法,通过是否舍弃空间来实现队列空满的判断。队列的数据结构const int MaxSize=10;typedef struct{ int data[MaxSize]; int front,rear; }Queue;front指向第一个元素。rear指向下一个为空的,可插入的位置。初始化bool initqueue(Queue &q){ q.fr原创 2021-04-21 10:59:35 · 4821 阅读 · 4 评论 -
数据结构--单链表的长度包括头节点吗
单链表的长度包括头节点吗?在严蔚敏的《数据结构》中:第19页,线性表的长度为0时,称为空表。那么什们又是空表?第28页,原话是:若线性表为空表,则头节点的指针域为空。意思也就是空表就是只有头节点的线性表。那们综上,线性表的长度是不包括头节点的。...原创 2021-03-17 16:11:18 · 8907 阅读 · 8 评论 -
数据结构(c语言)--顺序表的实现,基本操作
文章目录前言一、顺序表的定义二、实现的两种方法1.静态分配2.动态分配三.基本操作四.总结,顺序表的特点前言顺序表是基于线性表实现的。我们首先要知道线性表的特性有那些?首先是表中存储的是相同的数据类型,并且是有限序列,存入的元素必须相邻。提示:以下是本篇文章正文内容,下面案例可供参考一、顺序表的定义顺序表—用顺序存储的方式实现线性表。把逻辑上相邻的元素存储在物理位置也相邻的存储单元中。二、实现的两种方法1.静态分配代码如下(示例):#define MAxSize 10 /原创 2021-03-16 20:27:15 · 750 阅读 · 2 评论