关闭

简单实现thread pool

网上看得代码,两个小时时间改进一下源代码,增加log机制: #ifndef __thread_pool_h__ #define __thread_pool_h__ #include typedef struct work_s { void* (*routine)(void*); void* args; struct work_s* next; }w...
阅读(1542) 评论(0)

sublime 配置策略

大家好,今天给大家分享一款编辑器:sublime text2     我用过很多编辑器, EditPlus、EmEditor、Notepad++、Notepad2、UltraEdit、Editra、Vim,还有包括netbeans , zendstudio, dreamweaver 等。 最后我遇见了sublime text。  sublime是我见过的最好的编辑器,大型IDE能实现的功能,...
阅读(1394) 评论(0)

一个简易的打log的c代码

log.h  #ifndef _log_h__ #define _log_h__ #define LEVEL_DEBUG 0 #define LEVEL_TUNNINT 1 #define LEVEL_INFO 2 #define LEVEL_WARN 3 #define LEVEL_ERROR 4 #define TRACE_INFO(...) tr...
阅读(2845) 评论(0)

Bottom View of a Binary Tree

Given a Binary Tree, we need to print the bottom view from left to right. A node x is there in output if x is the bottommost node at its horizontal distance. Horizontal distance of left child of a nod...
阅读(1623) 评论(1)

输入一个无符号整数,用最少的步骤将该数变为1

输入一个无符号整数n,用最少的步骤将该数变为1,当n为偶数时可以采取的步骤是除2的形式,当n为奇数的时候可以采取加1或者减1的操作。 #include #include using namespace std; int min(int a, int b) { if (a < b) return a; return b; } int get_pow(uint num) { if...
阅读(2303) 评论(2)

shell编程小示例

1.模拟linnux登录shell #/bin/bash echo -n "login:" read name echo -n "password:" read passwd if [ $name = "cht" -a $passwd = "abc" ];then echo "the host and password is right!" else echo "input is error!...
阅读(2007) 评论(0)

链表翻转。给出一个链表和一个数k,比如链表1→2→3→4→5→6,k=2,则翻转后2→1→4→3→6→5,若k=3,翻转后3→2→1→6→5→4,若k=4,翻转后4→3→2→1→5→6,用程序实现

题目中最重要的就是学会一种方法,就是把链表中长度为k的一段从链表中摘除,翻转之后在将其衔接回链表。这是主要的思绪,以下按照此思路给出程序: #include using namespace std; typedef struct LNode { int m_nValue; struct LNode* m_pNext; }LNode; LNode* reverseList(LN...
阅读(4886) 评论(0)

顺时针打印nxn的矩阵

对于如下的矩阵进行顺时针的打印: 1 2 3 4 5 6 7 8 9 打印结果是:1,2,3,6,9,8,7,4,5这个打印很简单,就是按圈进行打印,看这个矩阵的维度是3,那么一共有一圈,和一个独立的点5,如果维度是4,那么就有两圈,没有独立的点,独立点进行单独处理,那么按圈进行打印,就要简单的多。自己拿出草稿纸画画就好,关键点是第几圈要有记录。 #include...
阅读(2200) 评论(0)

given a single link list (l0, l1, l2, l3,,,ln), and transform it to (l0, ln, l1, ln-2, l2, ln-3)

一道微软的编程题,趁午休的时间做了一下,如果有不对之处,希望指出。 #include #include using namespace std; typedef struct LNode { char m_nValue; struct LNode* p_mNext; }LNode; LNode* createList(char* pStr) { int strLen = strle...
阅读(1994) 评论(0)

一个字符数组,里面的字符可能是a-z、A-Z、0-9.现在要求对数组进行排序,要求所有小写字符放在最前面,所有大写字符放在中间,所有数字放在最后,而且各部分内部分别有序(创新工场)

一个字符数组,里面的字符可能是a-z、A-Z、0-9.现在要求对数组进行排序,要求所有小写字符放在最前面,所有大写字符放在中间,所有数字放在最后,而且各部分内部分别有序。思路:先进行字符串排序,用堆排序,按降序排列,排列依据字母对应的ascii值。排序之后按字符类别进行翻转。时间复杂度O(nlogn) #include #include using namespace std; void ...
阅读(5001) 评论(1)

huffman 编码

huffman压缩是一种压缩算法,其中经典的部分就是根据字符出现的频率建立huffman树,然后根据huffman树的构建结果标示每个字符。huffman编码也称为前缀编码,就是每个字符的表示形式不是另一个字符表示的前缀。如果学过c语言版本的数据结构的话,那么会知道其上面的算法的时间复杂度是O(N^2), 也算是比较复杂的,那么首先贴上这个版本算法的代码: #include #include u...
阅读(1939) 评论(0)

不用递归和辅助空间对二叉树进行遍历

递归和非递归的进行二叉树的遍历从某种意义上来讲都是需要辅助空间的。那么进行非递归的和不需要辅助空间的遍历会有这种可能吗?答案是肯定的,应用线索二叉树,这样就能把左子树或者右子树为空的节点利用起来,二叉树线索之后就可能找到某个节点的前区或者后继。一个含有n个节点的二叉树,可定会有n+1个指针是空的。所有利用这n+1一个指针就能将二叉树线索化而不遗漏任何一个节点。 下面给出利用这种线索化来遍历二叉树...
阅读(2407) 评论(0)

判断图中是否包含欧拉路径或者欧拉环

欧拉路径的定义:对于无向图来说,欧拉路径就是通过每条边有且只有一次,如果遍历的起始点和终止点都是一个顶点的话,那么就说这个图存在欧拉环。 上图中有三个例子,分别是欧拉路径和欧拉环,以及非欧拉路径。那么怎么来判断一个图中是否含有欧拉路径或者欧拉环呢。首先回想一下图的定义,图中有v个顶点,那么着v个顶点中有0个或者两个或者两个以上的顶点度数为奇数。接下来,求欧拉路径就相当于用笔画一个图,笔可...
阅读(5143) 评论(0)

判断一个给定的字符串通过循环移位是否可以包含另一个字符串

比如说给定字符串“ABCD"通过循环移位是否可以包含“CDAB”。 有两种方法,一种方法就是通过创建另外一个字符串,这个字符串是两个“ABCD”的连接,然后应用kmp在新创建的字符串中查找"CDAB",这样的时间复杂度是O(n), 空间复杂度也是O(n),还有另外一种方法是可在O(n)时间内完成,下面给出代码: #include #include #include using namespac...
阅读(3251) 评论(0)

zig tag traversal a binary tree

#include #include using namespace std; typedef struct tree_node_s { int value; struct tree_node_s* lchild; struct tree_node_s* rchild; }tree_node_t; tree_node_t* createNode(int value) { tree_nod...
阅读(1698) 评论(1)
139条 共10页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:436433次
    • 积分:5308
    • 等级:
    • 排名:第5665名
    • 原创:124篇
    • 转载:12篇
    • 译文:3篇
    • 评论:94条
    最新评论