摘要: 1.sockaddr结构体 sockaddr结构体包含了网络地址和端口的一些数据。以下三个函数实现了字符串转sockaddr结构体的功能。 1 int inet_aton(const char *strptr, struct in_addr *addrptr); 2 in_addr_t inet_a 阅读全文
posted @ 2016-03-09 22:41 qtalker 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的机会了。如果线程创建和销毁时间相比任务执行时间可以忽略不计,则没有必要使用线程池了。 下面是Linux系统下用C语言创建的一个线程... 阅读全文
posted @ 2016-01-20 20:41 qtalker 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 树的遍历有前序,后序,广度,以及中序遍历。下边将利用递归以及非递归的方式实现这几种遍历方式。1.前序遍历递归写法: 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * ... 阅读全文
posted @ 2015-09-02 17:50 qtalker 阅读(237) 评论(0) 推荐(0) 编辑
摘要: JOS是MIT操作系统对应的课程设计其课程地址在http://pdos.csail.mit.edu/6.828/2014/index.htmlLAB1:系统的启动 这里主要讲了两个关键的点操作系统的启动程序的之间的调用关系1.操作系统的启动的过程主要通过以下几个步骤首先运行BIOS,这里BIOS完... 阅读全文
posted @ 2015-08-25 21:44 qtalker 阅读(582) 评论(0) 推荐(0) 编辑
摘要: item1:c++一些简单介绍,template, stl之类。item2:尽量使用const ,enum以及inline。const的使用就不多提了,还是为了保护数据。enum以及inline可以替代define绝大多数的工作。另外需要注意的一点是使用enum可以达到不让通过指针访问这个变量的特点... 阅读全文
posted @ 2015-08-04 16:23 qtalker 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 语法分析器的知识框图懒得详细总结了。简单说下LR以及LL算法。 LR与LL代表两种对语法的分析方法,第一个字母代表程序的读入顺序,即从左向右读,第二个代表规则的推导,LR代表从右向左推导,LL代表从左向右推导。后边如果有数字的话,代表前看符号。LR算法相比较LL则可以分析更多的文法,也不需要进行一... 阅读全文
posted @ 2015-07-21 19:35 qtalker 阅读(374) 评论(0) 推荐(0) 编辑
摘要: 总结一些编译原理词法分析的内容。1 简单介绍 对于编译语言而言,程序都需要通过编译器编译成二进制的代码,这样才可以在计算机上运行。对于现在的程序而言,并不能直接将其翻译成二进制可执行文件。中间需要若干中间环节,其中通常包含词法分析器,语法分析器,语意分析器。这里主要总结一下词法分析器。 词法分析... 阅读全文
posted @ 2015-07-19 21:22 qtalker 阅读(720) 评论(0) 推荐(0) 编辑
摘要: 排序相关的算法复杂度分析下边分别实现下各个算法简单选择排序 1 //简单选择排序 2 void Select_Sort(int a[], int n) 3 { 4 int min; 5 for(int i = 0; i = 0; i--) 5 { 6 int ... 阅读全文
posted @ 2015-07-06 10:38 qtalker 阅读(375) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2015-07-03 09:28 qtalker 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 图的相关知识的思维导图扯几句相关的1.最短路径问题对于无权图而言很容易想到的就是BFS搜索算法,但是对于有权图而言,由于每条边都有权重,所以最先到达的点并一定是最短路径,所以这里BFS搜索无用,这里的Dijkstra是在BFS上演化而来的。关键的思想有两点1.每次收进去的是距离最近的点 2.收进去后... 阅读全文
posted @ 2015-07-03 09:12 qtalker 阅读(197) 评论(0) 推荐(0) 编辑