数据结构
懒少
技术交流QQ 287899762
展开
-
buff分析
1. 位置使用时包含头文件:#include "buffer.h"2. 数据结构2.1. struct bufferstruct buffer?1234567891011/* 缓存头 */struct buffer{ struct buffer_bucket *head; /* 指向第一个转载 2014-06-04 23:13:06 · 1369 阅读 · 0 评论 -
HASH表实现
1. 概述以邻接表管理(adjacency.c)为例,描述一种HASH表中的HASH桶、冲突链表等要素的管理方式。推荐以示例中的方式实现HASH表。冲突链表采用linux_list.h中定义的hlist接口实现,相比list(参考双向循环链表),头节点仅有一个指针,也就节省了HASH桶的空间。另外,桶的大小应定义为2的n次幂减1,这样在计算HASH值时,可以用与运算替代取模运算,避免原创 2014-05-25 23:19:24 · 962 阅读 · 0 评论 -
双向链表分析
1. 位置list.h 2. 数据结构struct list_headstruct list_head { struct list_head *next, *prev;}; 3. 使用方法1. 应用时,在链表的头节点及中间节点的数据结构中包含struct list_head成员;2. 头节点的struct list_原创 2014-05-25 23:14:56 · 1442 阅读 · 0 评论 -
kfifo 用户空间实现
#ifndef _Linux_KFIFO_H#define _Linux_KFIFO_H#define __u32 unsigned long#define __u64 unsigned long long#define min(x,y) (x < y ? x : y )#define max(x,y) (x > y ? x : y )/*static inline int f原创 2014-06-19 12:22:16 · 1443 阅读 · 0 评论 -
ptree数据结构分析
1.位置使用时包含头文件:#include "ptree.h"2.数据结构2.1struct ptree/* Patricia tree top structure. */struct ptree{ /* Top node. */ struct ptree_node *top; /* Maximum key size allowed (in bi原创 2014-04-29 14:19:01 · 10306 阅读 · 4 评论 -
堆原理与c实现
堆原理转载自https://www.cnblogs.com/mengdd/archive/2012/11/30/2796845.html注:如果根结点是从1开始,则左右孩子结点分别是2i和2i+1。 如果根结点是从0开始,则左右孩子结点分别是2i+1和2i+2,数组是以0开始的,所以一般使用这个!实现#include #include /* 堆排序转载 2017-11-15 14:39:02 · 330 阅读 · 0 评论 -
平衡二叉树的实现原理
http://blog.csdn.net/wxbmelisky/article/details/47755753转载 2017-11-21 10:26:17 · 428 阅读 · 0 评论 -
单生产者,单消费者无锁队列实现(c)
根据上面链接所说的原理实现的单生产者,单消费者无锁队列bool __sync_bool_compare_and_swap (type *ptr, type oldval,type newval, ...)函数提供原子的比较和交换,如果*ptr == oldval,就将newval写入*ptr。队列头文件/* * * Copyright (c) * * All righ原创 2014-06-14 12:20:58 · 3466 阅读 · 3 评论