摘要: 什么是二叉查找树? 二叉查找树(Binary Search Tree),也称有序二叉树(ordered binary tree),排序二叉树(sorted binary tree),是指一棵空树或者具有下列性质的二叉树: 若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;... 阅读全文
posted @ 2014-07-08 14:23 漂泊的指针 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 前面我们说过如何用C实现通用类型的链表,比如void*的指针,零长数组等。可是小菜鸟毕竟赶不上大师,还是Linux内核巧妙啊,这里面的链表,才是链表中的“奇葩”。 源码的路径是include/linux/list.h 我们先找几个简单的读一读吧。 struct list_head {str... 阅读全文
posted @ 2014-06-19 16:08 漂泊的指针 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 在linux内核链表中,会遇到两个宏。 在include/linux/stddef.h中,有这样的定义 #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) 这里的TYPE表示某个结构体类型,MEMBER表示结构体中的一... 阅读全文
posted @ 2014-06-19 09:24 漂泊的指针 阅读(439) 评论(0) 推荐(0) 编辑
摘要: 前面我们已经造好了一个轮子——双向链表,那么我们可以利用这个轮子做一个栈。 入栈:我们采用链表的头插 获得栈顶的元素:把头部元素拷贝到用户数据区 出栈:先把头部的元素拷贝到用户数据区,然后删除这个节点 好的,看一下头文件吧。 #pragma once#include "dlist.h"str... 阅读全文
posted @ 2014-06-18 12:11 漂泊的指针 阅读(857) 评论(0) 推荐(0) 编辑
摘要: 本文以stm32为硬件平台,浅谈一下变量访问的互斥。 假设是裸板,主程序和中断服务程序都对某个变量进行修改,那么很可能造成数据的不一致。查了一下,主要有两种解决方法:第一种是关中断,在访问公共资源的时候,先把中断关掉,等访问完毕,再打开中断。这样就避免了中断程序和主程序的竞态。第二种是自己做一个... 阅读全文
posted @ 2014-06-06 17:28 漂泊的指针 阅读(2645) 评论(0) 推荐(0) 编辑
摘要: 上次我们说了list,这次我们就借着mmem.c的代码来用一下这个链表。 代码目录是./core/lib/mmem.c 结构体定义如下 struct mmem { struct mmem *next; unsigned int size; void *ptr;};请注意,第一个成员必须是... 阅读全文
posted @ 2014-06-06 16:10 漂泊的指针 阅读(794) 评论(0) 推荐(0) 编辑
摘要: 我们阅读一下contiki的源码,list.c(路径是./core/lib/list.h). #include "lib/list.h"#define NULL 0struct list { struct list *next;}; 这就是核心结构体了,发现了吗?没有数据域,成员就是一个指针。... 阅读全文
posted @ 2014-06-05 14:23 漂泊的指针 阅读(467) 评论(0) 推荐(0) 编辑
摘要: 在前面的文章中,我们讨论了如何实现通用类型的链表,方法是用void *类型的指针,指向数据。那么还有其他的方法吗(不考虑内核链表)? 答案是肯定的。用零长数组也可以实现。 struct node_info{ struct node_info *next; struct node_info ... 阅读全文
posted @ 2014-05-19 16:17 漂泊的指针 阅读(501) 评论(0) 推荐(0) 编辑
摘要: 前两节,我们已经完成了链表的一些操作,快来测试一下吧。 这里使用的单元测试工具名字叫“check”。 START_TEST(my_slist_1){ struct student students[8] = {{"WangDong",18},{"LiuMing",19},{"SunYazh... 阅读全文
posted @ 2014-05-19 10:36 漂泊的指针 阅读(384) 评论(0) 推荐(0) 编辑
摘要: 一个偶然的机会,我接触到了contiki这个家伙。 Contiki 是一个开源的、高度可移植的、采用 C 语言开发的非常小型的嵌入式操作系统,针对小内存微控制器设计,适用于联网嵌入式系统和无线传感器网络,由瑞典计算机科学学院(Swedish Institute of Computer Sci... 阅读全文
posted @ 2014-05-13 13:20 漂泊的指针 阅读(385) 评论(0) 推荐(0) 编辑