#ifndef _CONST_H_#define _CONST_H_#include <stdio.h>#include <stdlib.h>typedef enum { False = 0, True,}Bool;typedef int ElemType;#define QUEUE_MAX_SIZE 10#define STACK_INIT_SIZE 10#define STACK_INCREMENT_SIZE 2#define Null ((void *)0)typedef enum{ NORMAL = 0, ERROR, UNDERFLOW, OVERFLOW, STATUSCOUNT,}Status;#endif #ifndef _QUEUE_H_#define _QUEUE_H_#include "Const.h"typedef struct queue{ ElemType *b...
比较strncpy与strcpy区别: 两者均为字符串拷贝函数,用于拷贝字符串。但strcpy比较时找字符串结束标志‘\0’,一旦找到 ‘\0’,比较结束。而后者我们可以根据实际情况完成指定长度n的字符串比拷贝,因此函数strcpy里面多了一个字母n,即strncpy.由此,从此处看strncpy比strcpy功能强大一点。 关于strcpy可以查看我的博客链接:http://10740184.blog.51cto.com/10730184/1714516 strncpy代码如下:#define _CRT_SECU...
源:关于中值滤波算法,以及C语言实现1、什么是中值滤波? 中值滤波是对一个滑动窗口内的诸像素灰度值排序,用其中值代替窗口中心象素的原来灰度值,它是一种非线性的图像平滑法,它对脉冲干扰级椒盐噪声的抑制效果好,在抑制随机噪声的同时能有效保护边缘少受模糊。中值滤波可以过滤尖峰脉冲。目的在于我们对于滤波后的数据更感兴趣。滤波后的数据保留的原图像的变化趋势,同时去除了尖峰脉冲对分析造成的影响。 以一维信号的中...
原文:https://www.cnblogs.com/ZHONGZHENHUA/p/10125638.html
原题:双向链表中,需要三个基本数据,一个携带具体数据,一个携带指向上一环节的prev指针,一个携带指向下一环节的next指针。请改写双向链表,仅用一个指针np实现双向链表的功能。定义np为next XOR prev,请根据表头提供的信息,为双向链表编写插入函数、删除函数和查找函数,并在O(1)时间内实现链表的翻转。 分析:问题的关键,在于怎样利用prev指针和next指针的异或结果,来获得上一节点或下一节点的地址值。也就是说,如何利用...
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> #include<assert.h> int int_computer(int num1, char *p, int num2) { if (p == "-a") return num1 + num2; else if (p == "-s") return num1 - num2; else if (p == "-m") return num1 * num2; else if (p == "-d") return num1 / num2; else return -1; } int main(int argc,int argv) { char a; char *p = &a; int num1 = 0; int...
/*使用DEVC++5.0编译通过,新手朋友请注意,启动顺序为打开DEVC++ - 新建项目 - 新建windows application程序(这里不是控制台程序),然后新建HELLOWORD项目,清空MAIN.C代码,将本代码复制进去编译运行即可,具体功能通过修改C代码实现,大家自己去探索。代码保存为.C文件,直接打开无法通过*/截图:代码如下:#include <windows.h> //#include <stdlib.h>#define IDC_EDIT1 201 //自定义控件识别号#define ...
很久不写博客了。第一次写博客是在04年,最近的一次还是在大学时,在学校时,甚至还有过自己去买虚拟主机搭WordPress写博客的经历。现在工作时间越长,越发现积累的重要性。那么就从这里开始吧,重新开始写博客。 最近打算写小算法,里面需要用到一些复数运算。贴一点复数运算的C语言实现代码。都是些很简单的东西。 包括以下运算: 复数加法、复数减法、复数乘法、复数除法、复数取模、复指数运算、复数取相角、模与相角...
今天突然心血来潮想起我前一家公司面试时遇到的一个面试题,就是实现个memcopy()函数。当初太紧张(刚毕业第二次面试),所以写的不是很好(可以说漏洞百出);现在刚学了点汇编,刚好就用两种语言实现下; 首先来看汇编实现的memcpy函数,是利用宏函数来实现的,用汇编指令rep和movsb配合循环把数据以字节为单位从ds:esi传送到es:edi中,把循环次数放在ecx中。当然这样拷贝的才是真正的内存拷贝,其他的函数都稍微有点牵强...
//广义表的头尾链表存储表示 //杨鑫 #include <stdio.h> #include <malloc.h> #include <stdlib.h> #include <string.h> #define MAXSTRLEN 40 ) typedef char SString[MAXSTRLEN+1]; typedef char AtomType; // 定义原子类型为字符型 typedef enum{ATOM, LIST // ATOM==0:原子 LIST==1:子表 } ElemTag; typedef struct GLNode {ElemTag tag; // 公共部...
1/* 2 编译器:Dev-c++ 5.1.0 3 文件名:linkList3.cpp 4 代码版本号:1.05 时间:2015年9月24日11:34:166*/ 7 8 #include <stdio.h>9 #include <stdlib.h>10 #include <time.h>11#define ERROR 012#define OK 113#define TRUE 114#define FALSE 015#define OVERFLOW -216 17 typedef int Status;18 typedef int ElemType;19 20 typedef struct lNode{21ElemType data;22struct lNode *next;23 }lNode,*linkList;24 25/*初...
1 #include <stdio.h>2 #include <stdlib.h>3 4#define OK 15#define ERR 26#define TRUE 17#define FALSE 08#define MAXSIZE 20 //定义线性表的最大长度 9 10 typedef int status; //定义函数返回的状态,OK & ERR 11 typedef char datatype; //定义线性表中每个结点的数据类型,这里暂定为字符型 12 13 typedef struct {14 datatype data[MAXSIZE]; //存储着线性表中的每个结点 15int length; //线性表当前的长度 16} Sequ...
Lua不支持像C那样的重载,例如,像下面这种形式在Lua中无法得到预期结果1function Add(a,b) 2return a + b 3end45function Add(a,b,c) 6return a + b + c 7end 但是,Lua中函数对于传入的参数个数也很宽松,它会自动去适应传入的参数,如果传入的参数个数多于定义的个数,则会自动忽略后面多于的参数,如果传入的参数个数少于定义的个数,则会将不足的参数用nil补齐。例如,上述希望实现的重载可以用下面的形式完成:1funct...
我们都知道,单向链表最后指向为NULL,也就是为空,那单向循环链表就是不指向为NULL了,指向头节点,所以下面这个程序运行结果就是,你将会看到遍历链表的时候就是一个死循环,因为它不指向为NULL,也是周而复始的执行。串成了一个环型。 #include <stdio.h> #include <stdlib.h> typedef struct node {char name[20];struct node *link; }student;student * creat(int n) /*建立单链表的函数,形参n为人数*/ {/* *h保存表头...
在C++中,我们常见到用类定义一个对象,这个对象可以有他自己的属性(数据)和方法(函数),而在C语言的正常语法中,是禁止在结构体中定义函数的。 在一个关于触摸屏的驱动程序中发现,用C语言的也可以实现对象的方法(函数)。 首先定义一个按键的结构体。 1、我们先来讨论第二个函数指针void(*btn_command)(); 我们用该结构体定义的对象想要使用这个函数指针实现方法的效果之前,需要对这个指针赋予一个同类型的...