数据结构(堆栈-队列-链表-哈希表等)
konishi5202
每天前进一点点
展开
-
开源库uthash第一弹uthash.h
一、简介1.1 uthash介绍uthash是C的比较优秀的开源代码,它实现了常见的hash操作函数,例如查找、插入、删除等待。该套开源代码采用宏的方式实现hash函数的相关功能,支持C语言的任意数据结构最为key值,甚至可以采用多个值作为key,无论是自定义的struct还是基本数据类型,需要注意的是不同类型的key其操作接口方式略有不通。官方原文说明如下:Any C structur...原创 2019-04-05 17:14:28 · 15942 阅读 · 3 评论 -
开源库uthash第二弹utlist.h
一、简介1.1 介绍utlist.h中包含了一组用于C结构体的通用链表宏。使用起来非常简单,只需要将utlist.h拷贝到你的项目,并包含进你的源码即可:#include "utlist.h"utlist.h宏提供了基本的链表操作:添加、删除、排序、遍历。1.2 源码获取utlist.h的源码可以在GitHub上直接获取(src/utlist.h):https://github....原创 2019-05-20 14:46:03 · 6493 阅读 · 0 评论 -
开源库uthash第三弹utstack.h
一、简介1.1 介绍utstack.h中包含了一组动态stack宏。使用起来非常简单,只需要将utstack.h拷贝到你的项目,并包含进你的源码即可:#include "utstack.h"utstack.h宏支持栈的基本的操作:push、pop、count,以及获取顶部元素操作。其内部实现为连接的链表。1.2 源码获取utlist.h的源码可以在GitHub上直接获取(src/ut...原创 2019-05-24 09:37:41 · 1876 阅读 · 0 评论 -
开源库uthash第四弹utstring.h
一、简介1.1 介绍utstring.h中包含了一组动态string宏。使用起来非常简单,只需要将utstring.h拷贝到你的项目,并包含进你的源码即可:#include "utstring.h"动态字符串支持基本的:插入数据、连接、获取内容、获取长度、子字符串匹配和清除。utstring同时还可支持纯二进制数据的操作。1.2 源码获取utstring.h的源码可以在GitHub上...原创 2019-06-05 16:17:48 · 1555 阅读 · 2 评论 -
开源库uthash第五弹utarray.h
一、简介1.1 介绍utarray.h中包含了一组用于C结构体的通用array宏。使用起来非常简单,只需要将utarray.h拷贝到你的项目,并包含进你的源码即可:#include "utarray.h"动态array支持基本的array操作:push、pop和erase。array的元素可以是任何基本类型或者符合的结构体类型。动态array内部通过一个连续的内存区域来实现,这个内存区...原创 2019-06-05 16:19:04 · 3436 阅读 · 0 评论 -
开源库uthash第六弹utringbuffer.h
一、简介1.1 介绍utringbuffer.h提供的宏函数是基于utarray.h来实现的。因此,在学习这篇文章之前,请先学习utarray.h。使用utringbuffer非常简单,只需要将utarray.h和utringbuffer.h拷贝到你的工程,并包含进你的源码即可:#include "utringbuffer.h"utringbuffer提供的方法与C++ STL的ver...原创 2019-06-05 16:20:45 · 1193 阅读 · 0 评论 -
Linux内核经典队列queue.h详解
一、前言相信有一定编程经验的你,在项目中经常会遇到队列、链表、ringbuffer等问题。刚开始的时候,都有过自己编写代码(造轮子)的经验。但随着工作经验的提升,经常会发现:以前自己造的轮子还有很多漏洞,并不能满足现在或将来的产品需求;甚至已经给现有产品埋下了坑;接触的越来越多,发现有很多经典开源的库(GitHub),已经实现了以前自己造的轮子,而且开源库做的更好(应该是非常的好)。那...原创 2019-06-28 16:47:08 · 5392 阅读 · 0 评论