c_c++
yiluohan0307
这个作者很懒,什么都没留下…
展开
-
读书随笔_2016.3.18
1.fprint函数函数声明:int fprintf(FILE * stream, const char * format, ...);函数说明:fprintf()会根据参数format 字符串来转换并格式化数据, 然后将结果输出到参数stream 指定的文件中, 直到出现字符串结束('\0')为止。返回值:关于参数format 字符串的格式请参考printf(). 成功则原创 2016-03-21 15:22:40 · 289 阅读 · 0 评论 -
软件测试的方法
1、按是否查看程序内部结构分为:(1)黑盒测试(black-box testing):只关心输入和输出的结果(2)白盒测试(white-box testing):去研究里面的源代码和程序结构2、按是否运行程序分为:(1)静态测试(static testing):是指不实际运行被测软件,而只是静态地检查程序代码、界面或文档可能存在的错误的过程。静态测试包括:对于代码测试,主要转载 2015-10-26 15:53:03 · 401 阅读 · 0 评论 -
tcp/udp的区别
TCP协议与UDP协议的区别 首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信!TCP/IP协议是一个协议簇。里面包括很多协议的。UDP只是其中的一个。之所以命名为TCP/IP协议,因为TCP,IP协议是两个很重要的协议,就用他两命名了。TCP/IP协议集包括应用层,转载 2015-10-26 15:53:28 · 324 阅读 · 0 评论 -
new和malloc的区别
1,malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。2,对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构转载 2015-10-26 15:46:46 · 352 阅读 · 0 评论 -
二叉树的线索化
#include #include /***中序遍历可以节省空间**将已经定义好的结构扩展为lchild、ltag、data、rtag、rchild**ltag为0时指向该节点的左孩子,为1时指向该节点的前驱**rtag为0时指向该节点的右孩子,为1时指向该节点的后继*/typedef char ElemType;//线索存储标志位//Link(0)表示指向左右孩子的指针//原创 2015-06-14 12:52:22 · 325 阅读 · 0 评论 -
树、森林及二叉树的相互转换
1.普通树转换为二叉树-加线,在所有兄弟结点之间加一条连线-去线,对树中每个结点,只保留它与第一个孩子结点的连线,删除它与其他孩子结点之间的连线-层次调整,以树的根结点为轴心,将整棵树顺时针旋转一定的角度,使之结构层次分明2.森林转换为二叉树-把每棵树转换为二叉树-第一颗二叉树不动,从第二棵二叉树开始,依次把后一棵二叉树的根结点作为前一棵二叉树的根结点的右孩子,用线连接起来原创 2015-06-15 12:39:31 · 439 阅读 · 0 评论 -
二叉树的遍历
#include #include /***二叉树是n(n>=0)个结点的有限集合,该集合或者为空集(空二叉树)**或者由一个根结点和两棵树互不相交的、分别称为根结点的左子树和**右子树的二叉树组成**这个定义显然是递归形式的**特点:**-每个结点最多有两棵子树,所以二叉树中不存在大于2的结点**-左子树和右子树是有顺序的,次序不能颠倒**空二叉树、只有一个根结点、根结点只原创 2015-06-12 11:38:16 · 299 阅读 · 0 评论 -
树的定义
#include #include /***一对多的数据结构:树**树是n(>=0)个结点的有限集。当n=0时为空树,在任意一棵非空树中:**-有且仅有一个特定的称为根(root)的结点**-当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1、T2.。。Tm**其中每一个集合本身又是一棵树,并且称为根的子树**-n>0时,根结点是唯一的,坚决不可能存在多个根结点**-原创 2015-05-15 12:32:22 · 507 阅读 · 0 评论 -
初识gdb调试器
Gdb是Linux下一款功能强大的c/c++程序调试工具一般来说,gdb主要提供以下功能1. 设置断点(断点可以是条件表达式),使程序在制定的代码上暂停执行,便于观察2. 单步执行程序,便于调试。3. 查看程序中变量值得变换。4. 动态改变程序的执行环境5. 分析崩溃程序产生的core文件gdb常用命令原创 2016-03-22 16:06:46 · 480 阅读 · 0 评论 -
统计一个数字在排序数组中出现的次数
主要包括四个文件main.c /GetNumOfKey.c/GetNumOfKey.h/Makefile/************************************************************************* > File Name: main.c > Author: cyf > Mail: XXXX@qq.com > Created Ti原创 2016-03-24 10:51:01 · 322 阅读 · 0 评论 -
随笔2016.3.24
1.strtok头文件:#include 定义函数:char * strtok(char *s, const char *delim);函数说明:strtok()用来将字符串分割成一个个片段。参数s 指向欲分割的字符串,参数delim 则为分割字符串,当strtok()在参数s 的字符串中发现到参数delim 的分割字符时则会将该字符改为\0 字符。在第一次调用时,strtok原创 2016-03-24 18:06:15 · 229 阅读 · 0 评论 -
C语言排序算法
#include #include void swap(int k[],int lo,int hi){ int temp; temp=k[lo]; k[lo]=k[hi]; k[hi]=temp;}/***冒泡排序*/void BubbleSort(int k[],int n){ int i,j,temp,count1=0,count2原创 2015-05-05 11:13:44 · 268 阅读 · 0 评论 -
随笔-2016.3.25-关于字符串的内存分配
#include void main1(){ char str[50]; int num; scanf("%d",&num); sprintf(str,"for /l %%i in (1,1,%d) do start calc",num); system(str);}原创 2016-03-25 18:02:55 · 258 阅读 · 0 评论 -
数据结构与算法(C语言)之开头篇
1.什么是数据结构数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关2.数据结构的分类数据结构分为逻辑结构和物理结构。逻辑结构:数据对象中数据元素之间的相互关系。逻辑结构包括:集合结构、线性结构、树形结构、图形结构物理结原创 2015-03-23 20:03:31 · 1542 阅读 · 0 评论 -
输入两个链表,找出它们的第一个公共节点(值)
输入两个链表,找出它们的第一个公共节点(值)方法1:在第一个链表上顺序遍历每个节点,没遍历一个节点时,在第二个链表上顺序遍历每个节点。方法2:计算每个链表的长度,长的链表先遍历两个链表长度差个节点,然后两个链表同时遍历,当他们相等时停止/*************************************************************************原创 2016-03-25 17:53:31 · 478 阅读 · 0 评论 -
c语言time
本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。 关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元) 1.概念 在C/C转载 2016-03-14 16:55:30 · 331 阅读 · 0 评论 -
C/C++中Static的作用详述
C/C++中Static的作用详述在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容char a转载 2015-05-26 10:54:00 · 288 阅读 · 0 评论 -
C语言队列
#include #include /***队列是只允许在一端进行插入操作,而在另一端进行删除操作的**线性表**队列是一种先进先出的线性表**队列既可以用链表实现,也可以用顺序表实现**跟栈相反的是,栈一般我们用顺序表来实现 ,二队列我们常用链表**来实现,简称为链队列*/typedef char ElemType;/***队列的结构*/typedef stru原创 2015-05-06 13:08:02 · 527 阅读 · 0 评论 -
魔术师发牌问题
#include #include #define CardNumber 13/*魔术师利用一副牌中的13张黑牌,预先将他们拍好后叠在一起,牌面朝下对观众说:“我不看牌,只数数就可以猜到每张牌是什么,我大声数数,你们听,不信?现场演示”。魔术师将最上面的那张牌数为1,把他翻过来正好是黑桃A,将黑桃A放在桌子上,第二次数1,2将第一张牌放在这些牌的下面,将第二张牌翻过来,正好是黑桃2原创 2015-05-13 13:36:42 · 518 阅读 · 0 评论 -
判断单链表是否有环
#include #include #include #define OK 1#define ERROR 0#define TRUE 1#define FALSE 0typedef int Status;typedef int ElemType;/*判断单链表中是否有环方法一: 使用p,q两个指针,p总是向前走,但q每次都从头开始走,对于每个节点 看p走的步数原创 2015-04-23 20:42:31 · 300 阅读 · 0 评论 -
双向链表的实践(C语言)
#include #include #define OK 1#define ERROR 0typedef char ElemType;typedef int Status;/***要求实现用户输入一个数使得26个字母的排列发生变化,例如**用户输入3,输出结果:**DEFGHIJKLMNOPQRSTUVWXYZ**同时需要支持负数,例如用户输入-3,输出结果为:**XYZDE原创 2015-05-11 20:10:58 · 474 阅读 · 0 评论 -
学生管理系统(c语言)
#include #include #include #include #include #define STRING_SIZE 20 /*字符串的最大长度*/#define Init_SIZE 5 /*初始学生信息的人数*/#define STU_MNG_FAIL 0原创 2015-04-27 20:54:05 · 629 阅读 · 0 评论 -
栈和其在二进制转换为十进制的应用(c语言)
#include #include #include /***栈是一种重要的线性结构。栈是前面讲过的线性表的一种具体形式。**它遵循后进先出原则**栈是一个后进先出的线性表,它要求只在表尾进行删除和插入操作**表尾称为栈的栈顶(top)表头称为栈底(bottom)**栈的插入操作(push)叫做进栈(压栈)栈的删除操作(pop)叫做出栈(弹栈)**栈也分为顺序存储结构和链式存储原创 2015-04-29 09:44:00 · 448 阅读 · 0 评论 -
数据结构与算法(C语言)之线性表(连式存储结构)
1.线性表的链式存储结构是用一组任意的存储单元存储线性表的数据元素,这组存储单元可以存在内存中未被占用的任意位置。 线性表的连式存储结构包括数据域和指针域;其中数据域存放数据元素信息指针域存放指针,我们把这两部分信息组成的数据元素称为结点(Node)2.ADT LinkListData数据结构包括两部分,一部分用来存放数据,另一部分用来存放指向下一个结构的指针。Operat原创 2015-04-02 21:19:57 · 626 阅读 · 0 评论 -
C语言enum枚举类型
1.枚举类型的定义枚举是在定义范围内选取数值的变量例如:enum itemsChoice{disAllInfo=1,sortedInfo,addStuInfo,deleteStuInfo,disUpStu,changePw,quitSys};也可以enum itemsChoice{disAllInfo=1,sortedInfo,addStuInfo,dele原创 2015-03-18 15:14:06 · 528 阅读 · 0 评论 -
c语言显示系统时间
1.使用系统自带的两个宏定义(__DATE__和__TIME__)#include #include int main(){printf("%s %s",__DATE__,__TIME__);return 0;}这个时间是你第一次编译程序时的时间。原创 2015-03-18 13:29:23 · 971 阅读 · 0 评论 -
C语言栈的链式存储结构
#include #include #define OK 1#define ERROR 0/***栈的链式存储结构,简称栈链**栈因为只是栈顶来做插入和删除操作,所以比较好的方法**就是将栈顶放在单链表的头部,栈顶指针和单链表的头指针和二为一*/typedef int ElemType;typedef int Status;typedef struct StackNode{原创 2015-05-15 12:33:05 · 653 阅读 · 0 评论 -
约瑟夫问题
#include #include /*据说著名犹太历史学家josephus有过以下的故事:在罗马人占领桥塔帕特后,39个犹太人与josephus及他的朋友躲到一个洞中39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第一个人开始报数,每报到第三个人,该人就自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。问题:用循环链表原创 2015-05-07 12:54:42 · 460 阅读 · 0 评论 -
栈的顺序存储结构
#include #include #define MAXSIZE 20#define ERROR 0#defien OK 1typedef int ElemType;typedef int Status;typedef struct{ ElemType data[MAXSIZE]; int top;}SqStack;Status Push(SqStack原创 2015-05-21 17:37:14 · 387 阅读 · 0 评论 -
字符串匹配KMP算法
#include #include /***KMP算法,全称克努特-莫里斯-普拉特算法**避免重复遍历的情况**回溯法就是坚持条条大路通罗马的决心,然后遇到挫折就回到跌倒的**地方重新爬起来,继续往前,这种思想是好的,但效率是低的**KMP算法的核心是避免不必要的回溯,问题由模式串决定,不是由目标决定*****/typedef char* String;void get原创 2015-06-10 11:28:38 · 352 阅读 · 0 评论 -
递归思想
#include #include /***斐波那契数列**当n=0,f(n)=0;当n=1,f(n)=1;当n>1,f(n)=f(n-1)+f(n-2)*//***斐波那契数列的递归实现*/int Fib(int i){ if(i<2) return i==0?0:1; return Fib(i-1)+Fib(i-2);}/***原创 2015-06-04 10:22:07 · 326 阅读 · 0 评论 -
中缀表达式转换为后缀表达式
#include #include #include #define STACK_INIT_SIZE 20#define STACKINCREMENT 10#define MAXBUFFER 10typedef char ElemType;typedef struct{ ElemType *base; ElemType *top; int stackSize;}sqSta原创 2015-05-06 12:16:34 · 447 阅读 · 0 评论 -
c++成员函数的重载、覆盖、隐藏区别
c++成员函数的重载、覆盖、隐藏区别成员函数的重载、覆盖(override)与隐藏很容易混淆,C++程序员必须要搞清楚概念,否则错误将防不胜防。重载与覆盖成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。覆盖转载 2015-05-26 18:53:06 · 363 阅读 · 0 评论 -
数据结构与算法之队列
#include #include /***队列是只允许在一端进行插入操作,而在另一端进行删除操作的**线性表**队列是一种先进先出的线性表**队列既可以用链表实现,也可以用顺序表实现**跟栈相反的是,栈一般我们用顺序表来实现 ,二队列我们常用链表**来实现,简称为链队列*/typedef char ElemType;/***队列的结构*/typedef stru原创 2015-05-07 13:06:53 · 327 阅读 · 0 评论 -
C++内存分配方式详解
C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用。和堆一样,用户栈在程序执行期间可以动态地扩展和收缩。 堆,就是那些由 new 分配的内存块,他们的释放编译器不去转载 2015-05-26 11:18:20 · 364 阅读 · 0 评论 -
二分法查找
#include #include #define MAX_LENGTH_INSERT_SORT 7/***二分法查找*/int binary_search(int a[],int lo,int hi,int key){ int mid=lo+(hi-lo)/2; if(key<a[mid]) return binary_search(a,lo,mid-1,ke原创 2015-06-01 10:39:17 · 311 阅读 · 0 评论 -
C语言实现逆波兰表达式
#include #include #include #define STACK_INIT_SIZE 20#define STACKINCREMENT 10#define MAXBUFFER 10typedef double ElemType;typedef struct{ ElemType *base; ElemType *top; int stack原创 2015-05-18 13:05:30 · 11531 阅读 · 2 评论 -
C语言scanf函数
函数名: scanf 功 能: 执行格式化输入 用 法: int scanf(char *format[,argument,...]);scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。其调用格式为: scanf("",);scanf()函数返回成功赋值的数据项数,出错时则转载 2015-03-26 09:44:13 · 567 阅读 · 0 评论