二叉查找树实现实例(C语言)

/*search_tree.h*/#ifndef_SEARCH_TREE_H#define_SEARCH_TREE_Hstructtree_node;typedefstructtree_node*position;typedefstructtree_node*search_tree;search_treemake_empty(search_treet);positionfind(intx,search_treet);positionfind_min(search_treet);positionfind_max(search_treet);search_treeinsert_tree(intx,search_treet);search_treedelete_tree(intx,search_treet);intretrieve(positionp);voidpreorder_print_search_tree(search_treet);voidinorder_print_search_tree(search_treet);voidpostorder_print_search_tree(...

队列实例程序(C语言

/*queue.h*/#ifndef_QUEUE_H#define_QUEUE_Hstructqueue_record;typedefstructqueue_record*queue;intis_empty(queueq);intis_full(queueq);queuecreate_queue(intmax_elements);voiddispose_queue(queueq);voidmake_empty(queueq);voidenqueue(intx,queueq);intfront(queueq);voiddequeue(queueq);intfront_and_dequeue(queueq);#endif/*queue.c*/#include"queue.h"#include<stdio.h>#include<stdlib.h>#defineMIN_QUEUE_SIZE5structqueue_record{intcapacity;intfront;intrear;intsize;int*array;};voidmake_empty(queueq){...
代码星球 代码星球·2021-02-21

栈的应用实例——中缀表达式转换为后缀表达式

声明:本程序读入一个中缀表达式,将该中缀表达式转换为后缀表达式并输出后缀表达式。注意:支持+、-、*、/、(),并且输入时每输入完一个数字或符号都要加一个空格,特别注意的是在整个表达式输入完成时也要加一个空格后再回车。这是该程序的一个不足之处,有待改进。/*infix_to_postfix.c*/#include<stdio.h>#include<errno.h>#include<stdlib.h>#include<unistd.h>structop_node{charop;intlevel;};structstack_record{intcapacity;inttop_of_stack;structop_node*array;};structstack_record*create_stack(intmax_elements){structstack_record*s;if(max_elements<5){printf("stacksizeistoosamll");exit(0);}s=malloc(sizeof(structsta...

栈的应用实例——计算后缀表达式

用户输入一个后缀表达式,程序计算该后缀表达式的值并输出结果:/*postfix_expression.c*/#include"stack.h"#include<stdio.h>#include<stdlib.h>#include<ctype.h>intmain(){inti,flag;charc,data_string[10];floatdata,f1,f2,result;stackdata_stack;data_stack=create_stack(100);printf("Pleaseinputapostfixexpression:");i=0;for(c=getchar();c!='';c=getchar()){switch(c){case'0':case'1':case'2':case'3':case'4':case'5':case'6':case'7':case'8':case'9':case'.':flag=1;data_string[i++]=c;break;case'':if(flag==1){data_string[i]='';da...

栈的应用实例——平衡符号

检查()、[]、{}是否配对。/*stack_balance_symbol*/#include"stack.h"#include<stdio.h>#include<stdlib.h>#include<error.h>intmain(intargc,char**argv){FILE*fp;stacks;charc;charctmp;if(argc!=2){printf("usage:a.out<filename>");exit(0);}fp=fopen(argv[1],"r");if(fp==NULL){perror("fopen");exit(1);}s=create_stack(10);c=fgetc(fp);while(c!=EOF){switch(c){case'(':push(c,s);break;case')':ctmp=top_and_pop(s);if(ctmp!='(')printf("notmatch!");break;case'{':push(c,s);break;case'}':ctmp=top_and_pop(s)...
代码星球 代码星球·2021-02-21

栈的实现实例(C语言)

/*stack.h*/#ifndef_stack_h#define_stack_hstructstack_record;typedefstructstack_record*stack;typedefintelement_type;intis_empty(stacks);intis_full(stacks);stackcreate_stack(intmax_elements);voiddispose_stack(stacks);voidmake_empty(stacks);voidpush(element_typex,stacks);element_typetop(stacks);voidpop(stacks);element_typetop_and_pop(stacks);#endif/*stack.c*/#include"stack.h"#include<stdio.h>#include<stdlib.h>#defineMIN_STACK_SIZE5structstack_record{intcapacity;inttop_of_stack;element_t...
代码星球 代码星球·2021-02-21

select使用实例——str_cli函数(修订版)

我们可以使用select函数重写http://www.cnblogs.com/nufangrensheng/p/3587962.html中的str_cli函数,这样服务器进程一终止,客户就能马上得到通知。早先那个版本的问题在于:当套接口上发生某些事件时,客户可能阻塞于fgets调用。新版本改为阻塞于select调用,等待要么标准输入可读,要么套接口可读。下图展示了调用select所处理的各种条件。客户的套接口上的三个条件处理如下:(i)如果对端TCP发送数据,那么该套接口变为可读,并且read返回一个大于0的值(即读入数据的字节数)。(ii)如果对端TCP发送一个FIN(对端进程终止),那么该头接口变为可读,并且read返回0(EOF)。(iii)如果对端TCP发送一个RST(对端主机崩溃并重新启动),那么该套接口变为可读,并且read返回-1,而errno中含有确切的错误代码。新版本源代码:#include<stdio.h>#include<sys/select.h>#include<sys/time.h>#include<errno.h&g...

TCP客户/服务器程序实例——回射服务器

目录客户/服务器程序源码POSIX信号处理POSIX信号语义处理SIGCHLD信号处理僵死进程处理被中断的系统调用wait和waitpid函数wait和waitpid函数的区别网络编程可能会遇到的三种情况TCP程序小结数据格式 回射输入行这样一个客户/服务器程序是一个虽然简单然而却很有效的网络应用程序的例子。实现任何客户/服务器网络应用所需的所有基本步骤可通过本例子阐明。若想把本例子扩充成你自己的应用程序,你只需修改服务器对于来自客户的输入的处理过程。TCP回射服务器程序:main函数/*tcpserv01.c*/#include<sys/socket.h>#include<strings.h>#include<sys/types.h>#include<netinet/in.h>#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<errno.h>intmain(intargc,char**argv){intli...

单链表实现实例

/*list.h*/#ifndef_LINKLIST_H#define_LINKLIST_Hstructnode{intdata;structnode*next;};typedefstructnode*ptr_to_node;typedefstructnode*position;typedefstructnode*list;listcreate_list();voidinsert(intx,listl,positionp);voidinsert_to_head(intx,listl);voidinsert_to_tail(intx,listl);positionfind_previous(intx,listl);intis_last(positionp,listl);voiddelete(intx,listl);voidprintl(listl);void make_empty(listl)#endif/*list.c*/#include"list.h"#include<stdio.h>#include<errno.h>#include<stdl...
代码星球 代码星球·2021-02-21

守护进程之单实例守护进程

为了正常运行,某些守护进程实现为单实例的,也就是在任一时刻只运行该守护进程的一个副本。例如,该守护进程可能需要排它地访问一个设备。在cron守护进程情况下,如果同时有多个实例运行,那么每个副本都可能试图开始某个预定的操作,于是造成该操作的重复执行,这很可能导致出错。如果守护进程需要访问一设备,而该设备驱动程序将阻止多次打开在/dev目录下的相应设备节点,那么这就达到了任何时刻只运行守护进程一个副本的要求。但是如果没有这种设备可供使用,那么我们就需要自行处理。文件锁和记录锁机制是一种方法的基础,该方法用来保证一个守护进程只有一个副本在运行。如果每一个守护进程创建一个文件,并且在整个文件上加上一把写锁,那就只允许创建一把这样的写锁,所以在此之后如试图再创建一把这样的写锁就将失败,以此向后续守护进程副本指明已有一个副本正在运行。文件锁和记录锁提供了一种方便的互斥机制。如果守护进程在整个文件上得到一把写锁,那么在该守护进程终止时,这把写锁将被自动删除。这就简化了复原所需的处理,去除了对以前的守护进程实例需要进行清理的有关操作。实例程序清单13-2中的函数说明了如何使用文件和记录锁以保证只运行某...
代码星球 代码星球·2021-02-21

Makefile自动编写工具实例

准备源文件如下:/*test.c*/#include<stdio.h>#include"phello.h"#include"pword.h"intmain(){ phello(); pword(); return0;}/*phello.c*/#include<stdio.h>#include"phello.h"intphello(){ printf("hello");}/*pword.c*/#include<stdio.h>#include"pword.h"intpword(){ printf("word");}/*phello.h*/#ifndef__PHELLO_H__#define__PHELLO_H__intphello();#endif/*pword.h*/#ifndef__PWORD_H__#define__PWORD_H__intpword();#endif使用autotools(autoscan、aclocal、autoconf、autoheader、automake)自动编写Make...

jquery-validation-1.13.1 自定义验证正则

/***checkMobile***********************/jQuery.validator.addMethod("isMobile",function(value,element,param){//varpattern=/(^0{0,1}[13|15|18|14|17]{2}[0-9]{9}$)/;varpattern=/(^1[3,4,5,7,8]{1}[0-9]{9}$)/;  //varpattern=/(^d{15}$)|(^d{17}([0-9]|X|x)$)/;(验证15位或18位身份证号码,最后一位可以为x)//varpattern=/(?:(?[0+]?d{1,3})?)[s-]?(?:0|d{1,4})[s-]?(?:(?:13d{9})|(?:d{7,8}))/;if(pattern.test(value)){returntrue;}else{returnfalse;}},"请输入正确的手机号");$('#editForm').validate({rules:{isMobile:{​isMobile:true,}},messages:{isMob...

前端/html5效果收藏

H5应用9款漂亮的H5效果8款漂亮的H5效果36漂亮的button效果颜色RGB表省市二级联动 ...
代码星球 代码星球·2021-02-20

js验证

1.文本框只能输入数字代码(小数点也不能输入)<inputonkeyup="this.value=this.value.replace(/D/g,'')"onafterpaste="this.value=this.value.replace(/D/g,'')">2.只能输入数字,能输小数点.<inputonkeyup="if(isNaN(value))execCommand('undo')"onafterpaste="if(isNaN(value))execCommand('undo')"><inputname=txt1onchange="if(/D/.test(this.value)){alert('只能输入数字');this.value='';}">3.数字和小数点方法二<inputtype=textt_value=""o_value=""onkeypress="if(!this.value.match(/^[+-]?d*?.?d*?$/))this.value=this.t_value;elsethis.t_value=this.valu...
代码星球 代码星球·2021-02-20

asp.net mvc4 远程验证

[HttpGet]publicActionResultCheckToolsIdExists(stringToolsID){using(BaseContextcontext=newBaseContext("ToolsTB")){varisExists=context.T_ToolsSet.FirstOrDefault(m=>m.ToolsID==ToolsID);if(isExists!=null){returnJson(false,JsonRequestBehavior.AllowGet);}returnJson(true,JsonRequestBehavior.AllowGet);}} [Remote("CheckToolsIdExists","SystemManagement",ErrorMessage="伺服机编号已存在!")][Required(ErrorMessage="*编号不能为空!")]publicstringToolsID{get;set;} <scriptsrc="~/Scripts/jquery-1.7.1.min.js">&...
代码星球 代码星球·2021-02-20
首页上一页...910111213...下一页尾页