数据结构和算法
风知前
c c++ llvm fpga ic
展开
-
二叉树叶子数
#include #include typedef struct{ struct Node* pLeft; struct Node* pRight; int iValue;}Node;int CountTreeLeaf( Node* pNode ){ if( !pNode ) return 0; if( !pNode->pLeft && !pNode->pRigh原创 2013-07-10 19:33:52 · 939 阅读 · 0 评论 -
二叉排序树
//BSTSearch.h//Binary Search Tree#ifndef BSTSEARCH_H#define BSTSEARCH_H#include #include #define true 1#define false 0#define ERROR 2#define NOT_FOUND 3#pragma pack( push )#pragma pack(原创 2013-07-28 16:07:23 · 1077 阅读 · 0 评论 -
C字符串简单压缩
#include <iostream>#include <stdlib.h>//#include <algorithm>using namespace std;void stringZip( const char* pInputStr, long lInputLen, char* pOutputStr ){ if( !pInputStr || ...原创 2013-08-04 09:54:33 · 4321 阅读 · 0 评论 -
C语言根据日期取其位于一年中的第几天
根据当前输入的年月日取其位于一年中的第几天 这个算法可用在以年份为序号的文档生成中...原创 2013-08-04 11:48:13 · 1184 阅读 · 0 评论 -
一道C机试题目
题目是这样的求一个字符串中连续字母的个数比如I have a book. : 1I have a dog. : 0I haavee aa dogg : 4#include <windows.h>#include <iostream>using namespace std;void GetDupStringCount( const ...原创 2013-08-08 20:10:39 · 1253 阅读 · 0 评论 -
广告路由器开发(一)数据流
本文对wifidog与authpuppy的数据交互进行了分析 由此文可以看出如何书写一个简单的广告路由器的方法原创 2014-09-25 10:34:39 · 3614 阅读 · 0 评论 -
直接插入排序
代码从《数据结构C语言版(严蔚敏 吴伟民)》//InsertSort.h#ifndef INSERTSORT_H#define INSERTSORT_H#include <stdio.h>#include <stdlib.h>#endif//InsertSort.c#include "InsertSort.h"...原创 2013-07-29 16:58:22 · 920 阅读 · 0 评论 -
基于redis的分布式互斥锁
基于Redis的分布式锁,使用lua与redis的script实现 实现了记录的互斥访问原创 2016-09-05 11:14:41 · 1596 阅读 · 0 评论 -
任务分配问题
遇到一个题目大约是这样的:一个任务分配系统,其中的worker进程同时只能处理一个任务且任务不能中断。 //Worker.javaimport java.util.ArrayList;import java.util.List;public class Worker { private int iIndex; private int iSum; privat...原创 2017-03-01 21:54:24 · 1794 阅读 · 0 评论 -
纯真IP地址库合并
最近做一个项目时需要用到IP地址库, IP地址库这东西用的人应该不少,索性就把代码贴出来方便分离给大家使用。做IP地址库有多种方式,比如直接使用文件来做,也可以使用数据库来做,当然也可以使用内存数据库或缓存来做。前两种实现方式性能比较低,所以我们这里直接使用redis缓存来实现了。这个实现在我的小本子上的性能可以达到了15190QPS以上,已经可以用于生产了。IP地址库使用的是纯真的IP库。不多说...原创 2017-07-02 16:04:59 · 1625 阅读 · 0 评论 -
冒泡排序简单优化
#include <stdio.h>#define EOL "\n"int main( int argc, char* argv[] ){ int arrInt[] = {9,2,3,11,22,111,23,8,7}; int size = sizeof(arrInt)/sizeof(arrInt[0]); int i, j, t...原创 2019-08-05 11:12:02 · 203 阅读 · 0 评论 -
岛屿数量问题的另一种解法
解决graph中的岛屿计数问题的另一种解法原创 2019-07-28 10:37:53 · 458 阅读 · 0 评论 -
索引顺序表查找
//BlockSearch.h#ifndef BLOCK_SEARCH#define BLOCK_SEARCH#include #include #define ARR_SIZE 100#pragma pack(push)#pragma pack(4)typedef struct{ int iStart; int iEnd; int iMax;}INode;原创 2013-07-28 08:34:51 · 2743 阅读 · 1 评论 -
广度优先遍历二叉树
//广度遍历二叉树 树的广度遍历和之类似//这里同样使用的是递归函数的方式//此篇文章中的代码可与二叉树的基本操作一文放在一起即可很容易的验证#pragma pack(push)#pragma pack(4)struct _Node{ int iValue; struct _Node* pLChild; struct _Node* pRChild;};#pragm原创 2013-07-26 16:48:23 · 1292 阅读 · 0 评论 -
C语言零移位操作
给定一个整形数组要求把其中的零元素移动到数组的末尾 非零元顺序保持不变以下采用两种方法实现 #include #include #include #include void PrintArr( int arr[], int iSize ){ if( iSize < 0 ) return; int i = 0; for( ; i < iSize; i原创 2013-08-02 10:04:07 · 1822 阅读 · 0 评论 -
单链表倒置
#include #include struct Node{ int iValue; struct Node* pNext;};typedef struct Node Node;Node* RevList( Node* pHeader ){ if( !pHeader ) return NULL; Node* pRes = pHeader;//保存结果 Nod原创 2013-07-13 15:46:37 · 973 阅读 · 0 评论 -
C语言实现简单链栈
//LinkStack.h#ifndef LINKSTACK_H#define LINKSTACK_H#include #include typedef struct{ char strName[32]; int iAge; struct Node* pNext; struct Node* pPrev;}Node;typedef struct{ struct原创 2013-07-09 13:23:53 · 848 阅读 · 0 评论 -
C语言实现简单顺序栈
//SeqStack.h#ifndef SEQSTACK_H#define SEQSTACK_H#include #include #define STACK_INIT_SIZE 100#define STACK_INCREMENT 10typedef struct{ char strName[32]; int iAge;}Node;typedef struc原创 2013-07-08 17:39:02 · 800 阅读 · 0 评论 -
简单链队列
//LinkQueue.h#ifndef LINKQUEUE_H#define LINKQUEUE_H#define NULL 0x00#include #include struct Node{ int iValue; struct Node* pNext;};typedef struct Node Node;typedef struct{ Node* p原创 2013-07-14 18:41:03 · 843 阅读 · 0 评论 -
C实现简单循环队列
//SqQueue.h#ifndef SQQUEUE_H#define SQQUEUE_H#include #include #define QUEUE_SIZE 8//#define NULL 0x00struct _Node{ int iValue;};typedef struct _Node Node;typedef struct{ Node* pBas原创 2013-07-15 10:34:41 · 831 阅读 · 0 评论 -
树的基本操作
树的基本操作 包含添加添加结点 删除结点 前序遍历树 后序遍历树 清空树 销毁树等原创 2013-07-19 21:47:40 · 1343 阅读 · 0 评论 -
二叉树基本操作
二叉树基本操作 包括初始化二叉树 清空二叉树 销毁二叉树 添加子结点 二叉树的深度 二叉树的叶子数目等原创 2013-07-21 11:50:30 · 4399 阅读 · 1 评论 -
中序线索化二叉树
中序线索化二叉树 算法从从严蔚敏 吴伟民 <<数据结构(C语言版)>>原创 2013-07-22 18:01:25 · 1269 阅读 · 0 评论 -
构建Huffman树
构建Huffman树 并中序后序遍历Huffman树原创 2013-07-24 10:49:42 · 1125 阅读 · 0 评论 -
Hash查找,散列查找
散列查找,Hash查找。定址法:直接定址法冲突处理方式:链表法原创 2013-07-30 13:47:15 · 1273 阅读 · 0 评论 -
不使用字符串库函数实现字符串复制的几种方法
不使用字符串函数实现字符串复制的几种方法方法原创 2013-08-01 21:25:34 · 3976 阅读 · 0 评论 -
岛屿问题简单解法
解题思路:递归的把所有遇到的1全部置为0.<?php$strIsland = <<<STR1 1 1 1 01 1 0 1 01 1 0 0 10 0 0 1 0STR;$graph = [];$lines = explode(PHP_EOL, $strIsland);$row = 0;foreach( $lines as $line )...原创 2019-07-28 11:26:27 · 591 阅读 · 0 评论