![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c
程序员之通天帝国
这个作者很懒,什么都没留下…
展开
-
华为机试-查找两个字符串a,b中的最长公共子串
#include<iostream>#include<vector>#include<string>using namespace std;void display(vector<string>vt,int number,string str)//在短字符串中输出最先出现的最长子串{ int index; int min_value=10000000; int location; for(int i=0;i<vt...原创 2020-11-12 15:09:15 · 151 阅读 · 0 评论 -
回溯法
0-1背包问题:给定n种物品和一背包。物品i的重量是wi,其价值为pi,背包的容量为C。问应如何选择装入背包的物品,使得装入背包中物品的总价值最大? 分析:问题是n个物品中选择部分物品,可知,问题的解空间是子集树。比如物品数目n=3时,其解空间树如下图,边为1代表选择该物品,边为0代表不选择该物品。使用x[i]表示物品i是否放入背包,x[i]=0表示不放,x[i]=1表示放入。回溯搜索过程,如果来到了叶子节点,表示一条搜索路径结束,如果该路径上存在更优的解,则保存下来。如果不是叶子节点,是...转载 2020-11-03 14:29:31 · 2479 阅读 · 0 评论 -
华为机试-迷宫问题
本算法采用深度优先遍历思想(DFS),由于深度优先遍历迷宫可能会有多种结果,因此需要保存每次成功的路径,最后选择最短路径,代码如下:#include<iostream>#include<vector>using namespace std;vector<vector<int> >path;//保存迷宫路径vector<vector<int> >short_path;//保存最短迷宫路径int N,M;void dis..原创 2020-11-03 11:44:18 · 1243 阅读 · 0 评论 -
带头节点单链表操作
//带头结点#include<stdio.h>#include<stdlib.h>typedef struct node { int val; struct node *next;}listnode,*list;void createList1(list &head,int n)//头插法{ head=(listnode*)malloc(sizeof(listnode)); head->next=NULL; lis...原创 2020-09-23 17:42:58 · 135 阅读 · 0 评论 -
不带头结点单链表操作
编译环境DEVC++//不带头结点#include<stdio.h>#include<stdlib.h>typedef struct node { int val; struct node *next;}listnode,*list;void createList1(list &head,int n)//头插法{ head=NULL; listnode *p; for(int i=0;i<n;i++) {...原创 2020-09-23 16:25:31 · 163 阅读 · 0 评论 -
linux内核文件操作
这段时间在做linux c嵌入式项目时遇到在linux内核读写文件的问题。众所周知,在内核态,不可以使用譬如用户态下的fopen等函数。这里介绍两种方法:1.普通文件例如tmp目录下demo文件,即tmp/demo利用struct file* filp_open(const char* filename, int open_mode, int mode);参数说明filenam...原创 2020-04-17 13:34:23 · 410 阅读 · 0 评论 -
C语言数组的五种排序
冒泡排序快速排序选择排序插入排序归并排序冒泡排序冒泡排序的基本思想:不断比较相邻的两个数,让较大的元素不断地往后移。经过一轮比较,就选出最大的数;经过第2轮比较,就选出次大的数,以此类推。对于具有N个元素的数组R[N],进行最多N-1轮比较;/*** 冒泡排序数组* @param int a[] 要排序的数组* @param int n 数组元素的个数**/vo...转载 2020-01-10 11:04:08 · 833 阅读 · 0 评论 -
IP地址获取-PPPoE&DHCP
PC获取IP地址的方式有3种,手工配置、PPPoE获取、DHCP获取。PPPoE应用较多PPPoE拨号包括PPPoE Discovery、PPPoE Session、PPPoE Terminate三个阶段。PPPoE Discovery(1)client广播发送PADI寻找server;(2)server收到PADI后(得到了client的MAC地址),单播向client回P...转载 2019-07-01 09:13:25 · 4094 阅读 · 0 评论 -
C语言计时函数gettimeofday()
头文件:sys/time.h函数原型:int gettimeofday(struct timeval *tv,struct timezone *tz);说明:其参数tv是保存获取时间结果的结构体,参数tz用于保存时区结果(若不使用则传入NULL即可)。timeval的定义为:structtimeval{ longtv_sec;//秒数 long...原创 2019-05-28 16:51:52 · 7754 阅读 · 0 评论 -
正则表达式特殊字符的含义
正则表达式是一种文本处理强有力的工具。但同时也定义复杂的规则,下面主要解释正则表达式特殊字符的含义。正则表达式的特殊字符主要包括".^$()*+?{}[]\|"(1) .是单字符的通配符(2) ^匹配行的开头(3) $匹配行的末尾(4) ()定义一个正则表达式匹配子元素(5) *表示前面字符可以出现任意多次(n>=0)(6) +表示前面字符至少出现一次(n>...原创 2018-12-11 13:09:04 · 2359 阅读 · 0 评论 -
单链表的创建(带头结点以及不带头结点)
不带头结点#include "stdio.h"#include "stdlib.h"typedef struct List {int data; //数据域struct List *next; //指针域} List;List * HeadCreatList() //头插法建立链表,不带头结点 { List *s; //不用像尾插法一样生成一个终端节点。 List...原创 2018-11-05 16:57:19 · 18302 阅读 · 1 评论 -
fcntl函数对文件锁的操作
在Shell下输入man fcntl可获取函数原型#include #includeint fcntl( int fd, int cmd , struct flock *lock);这里,fd表示打开文件的文件描述符cmd在这里可取F_SETLK 设置或释放锁;F_GETLK 获取锁的属性struct flock { short l_type; shor翻译 2017-05-12 14:03:52 · 499 阅读 · 0 评论 -
c语言输出%
在计算cpu或者mem利用率时,我们会格式化输出%,下段代码展示输出%int main(){ int cpu; int mem; . . .. . .. printf(" %d%% %d%%\n",cpu,mem); return 0; }原创 2017-05-25 15:47:49 · 505 阅读 · 0 评论 -
BusyBox中的FTP和TFTP的使用
BusyBox中的FTP和TFTP的使用分类: 嵌入式版本:BusyBox-1.17.4编译过程选择FTP和TFTP相关选项。TFTP在终端中输入tftp命令,可以得到以下帮助信息:BusyBox v1.17.4 (2010-12-22 10:59:18 CST) multi-call binary.转载 2017-07-10 13:43:50 · 3360 阅读 · 0 评论 -
Linux下线程pid和tid
#include #include #include #include struct message{ int i; int j;};void *hello(struct message *str){ printf("child, the tid=%lu, pid=%d\n",pthread_self(),syscall(SYS_gettid));转载 2017-07-25 09:13:05 · 1550 阅读 · 0 评论 -
va_start、va_arg、va_end、va_list的使用
原文连接:http://justsee.iteye.com/blog/1637173va_start、va_arg、va_end、va_list的使用VA_LIST 是在C语言中解决变参问题的一组宏他有这么几个成员:1) va_list型变量:#ifdef _M_ALPHAtypedef struct { char转载 2017-09-11 09:30:57 · 258 阅读 · 0 评论 -
C语言实现md5函数代码
转自 https://blog.csdn.net/xhhjin/article/details/8450686头文件md5.h[cpp] view plain copy#ifndef MD5_H #define MD5_H typedef struct { unsigned int count[2]; unsigned int state[4]; unsi...转载 2018-03-30 18:49:37 · 2062 阅读 · 2 评论 -
从 Linux 源码看 socket 的阻塞和非阻塞
从linux源码看socket的阻塞和非阻塞笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情。大部分高性能网络框架采用的是非阻塞模式。笔者这次就从linux源码的角度来阐述socket阻塞(block)和非阻塞(non_block)的区别。 本文源码均来自采用Linux-2.6.24内核版本。一个TCP非阻塞client端简单的例子如果我们要转载 2018-04-13 09:23:30 · 221 阅读 · 0 评论 -
编译错误error: invalid storage class
编译错误error: invalid storage class2013年02月01日 09:54:41阅读数:5809昨天遇到一个莫名其妙的编译错误,以前没有见过,而且代码流程看起来也没有太多的奇异之处。后来忍无可忍,百度了下,发现别人也有遇到这个错误的,他的解决方法是:少了“}”。嘿嘿,我开始跟踪每一个函数,终于找到了这个地方。对的。就是因为少了一个“}”。所以要注意了,仔细仔细哈。下面就是m...转载 2018-06-19 09:25:41 · 15422 阅读 · 3 评论 -
iptables and ebtables
iptables和ebtables都是linux上常用的防火墙,前者主要负责网络层的数据包过滤,后者则负责数据链路层的包过滤。对于两者的语法,可以参考博文 http://blog.csdn.net/windxxf/article/details/815973 http://itoedr.blog.163.com/blog/static/1202842972012101022023796/原创 2017-05-11 09:28:24 · 1148 阅读 · 0 评论