自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

名道亭的专栏

Reading code

  • 博客(14)
  • 收藏
  • 关注

原创 linux kernel data struct : 随机产生一副扑克牌

今天我们来看看,如何随机产生一副扑克牌。#include #include typedef enum {    XIAO_GUI = 1,    DA_GUI,    RED_HEART = 3,    FANG_PIAN,    MEI_HUA,    HEI_TAO}FLOWER_COLOR;typedef struct {    FLOWE

2013-08-03 07:55:18 632

原创 linux kernel data struct: dijkstra算法

今天来看看这个算法,鸣谢一位同事给讲解这个算法,算法的思想大家可以去了解一下;算法主要思想:找出图中任意一点出发,找出到其他点的最短路径;实现上往往会有一个集合来存放已知点,每次加入一个点;加入的方法是:找出集合点的所有路径,筛选出离A点最近的点,加到集合中。这里简单的对其实现:  #include #include #define N 5   //5个点 ty

2013-08-01 07:39:48 707

原创 objective-c : 使用FSM实现自动售水机模型

今天我们使用FSM(finite state machine有限状态机)来实现一个自动售水机;我们要实现的FSM,如下图:  +-------------------------------------------------+-----+ |

2013-06-30 21:53:17 1147

原创 objective-c : 构造类、继承及实例

今天,我们来实现如下UML,并作为objective-c的第二个例子,介绍如何自己构造类,实现继承,并如何实例化,赋值等:             +--------------------------+            |       Phone              |            |--------------------------|

2013-06-20 07:26:51 591

原创 objective-c : windows下搭建环境并编译自己的第一个objective-c程序

objective-c 是C的一个改进语言,新添的一些面向对象的特性。今天我们来看看,如下在windows下搭建编写objective-c的环境,并编译第一个hello程序。如何在windows下搭建的方法很多,经过自己动手并确认的,大家可以参考:http://blog.csdn.net/waden/article/details/5765294当然,该文也给出了第一个程序,当然,作为第一

2013-06-19 23:01:55 558

原创 linux kernel data struct: binary search

今天我们来看看二分法,它建立在已经排序好的线性表基础上,我们假设线性表进行了升序的排列,将要查找的元素与线性表中间的元素进行比较,如果元素比中间的大,那么,再在后半部分进行同样方法的查找;以此。。。直到待查找的线性表只剩一个元素。这是一种比较高效的查找方法了,它的时间复杂度为O(logN)  底为2,N代表线性表长度,也就是说,如果线性表长为8,那么最多只需要3次比较(2的3次方为8),就

2013-06-14 08:07:35 595

原创 linux kernel data struct : 改进的冒泡排序法

传统的冒泡排序,时间复杂度会是O(n*n),以下的改进型冒泡排序,加入一个标志位,巧妙的利用上一次比较信息决定是否有必要进行下一次的排序;能将时间复杂度降到O(n*logn)。 #include void optim_bub(int a[], int num){     int i,j,temp;     int changed;     int count = 0;

2013-06-12 21:05:40 612

原创 linux kernel data struct: quick sort

快速排序采用分而治之的排序方式,在一次排序后,便将整个欲排序的数组以第一个元素为为界,分为小于和大于两边;这种方式能将时间复杂度降到O(n*logn)。以下为个人的C实现,在Dev-C上验证通过:关于这种排序的思路,网上都有介绍,其中有种,挖了填,拆东墙补西墙的解释挺通俗易懂的,大家可以自己去了解一下; #include #include void quick_sort

2013-06-11 14:28:24 697

原创 linux kernel data struct: KMP算法实现

KMP算法被三位外国人所发现,其实是利用“欲搜索”字符串内部的特征,避免两个字符串的回溯,从而把字符串模式匹配的时间复杂度从O(m*n)降低到O(m+n)。    这个算法的核心在于理解和计算next数组。具体实现如下: #include /**return where different.return 0 means equal.*/int is_2str_dif

2013-06-10 21:45:32 598 1

原创 linux kernel data struct : find longest sub string

今天我们来看看面试 C 中常见,而且比较刁钻的题目:找出两个字符串中的最大相同子串,如:str1: "mmmabckkk"str2: "oabclll"那么最大相同子串为:abc以下为我与同事讨论最后的思路及解法,希望对大家有所启发。基本思路为:短串中以最大的长度作为窗口,以后窗口依次减一;            遍历短串的窗口字符            遍历长串的

2013-05-11 14:23:50 529

原创 linux kernel X-tranx-Y : TTY to sdio

今天我们来看看linux kernel driver中的glue:sdio_uart.c。  顾名思义,这个文件把以TTY和sdio设备驱动贴合在一起,实现了TTY(一般为串口)到sdio设备的转换,也就是TTY over sdio。该文件实现的功能框图如下:      +-------------------+---------------------+      |

2013-04-30 21:49:09 1287

原创 linux kernel data struct : circular buf

今天我们来看一下,linux kernel driver中经常使用的环形缓冲区以及对它的操作,参考文件:u_serial.c,如下图所示:                                              buf_buf                          +                          |

2013-04-21 07:27:00 703

原创 linux kernel X-tranx-Y : TTY to gadget

今天我们来看看linux kernel driver中的glue:u_serial.c。  这个文件把以TTY和USB Gadget设备驱动贴合在一起,实现了TTY(一般为串口)到Gadget设备的转换。该文件实现的功能框图如下:      +-----------------+---------------------+      |

2013-04-20 08:44:35 1188

原创 linux kernel X-tranx-Y : Ethernet-to-Gadget

今天我们来看看linux kernel driver中的glue:u_ether.c这个文件把以太网卡设备转换成了USB gadget设备,目的是实现TCP/IP Over USB。该文件实现的功能框图如下:      +-------------+--------------------------+      |                 |

2013-04-20 07:15:55 1527

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除