- 博客(20)
- 资源 (1)
- 收藏
- 关注
转载 curses
Linux程序设计——第六章 curses函数库 UNIX 屏幕导向程序的发展利器 - curses (之一) cbreak() nocbreak() 当 cbreak 模式被开启後, 除了 DELETE 或 CTRL 等仍被视为特殊 控制字元外一切输入的字元将立刻被一一读取.当处於 nocbreak 模 式时, 从键盘输入的字元将被储存在 buffer 里直到
2012-03-20 10:39:42
330
转载 gethostbyname()
使用这个东西,首先要包含2个头文件:#include #include struct hostent *gethostbyname(const char *name);这个函数的传入值是域名或者主机名,例如"www.google.com","wpc"等等。传出值,是一个hostent的结构(如下)。如果函数调用失败,将返回NULL。struct hostent {
2012-03-10 14:23:33
351
转载 gethostent
2.套接字的调用TCP/IP的系统调用主要是通过对套接字的操作来实现的,下面给出了部分常用的TCP/IP系统调用:�scoket 创建套接字�bind 为套接字赋一个名字�connect 启动一个连接�accept 接受连接�listen 监听连接�write/send 发送信息�read/recv 接收信息�close 关闭套接字三、UNIX网络库例程的应
2012-03-10 14:07:34
1151
原创 信号2笔记
系统有以下处理信号的组合:1、不可靠的信号(捕鼠器)如果先后出现两个SIGINT信号杀死了进程,那么意味着你的系统是不可靠的信号:处理函数必须每次都重置。sa_flags的值为SA_RESETHAND,就是这种信号:在调用信号处理函数时,将信号的处理方式重置为SIG_DEL。所以出现第二SIGINT信号,按默认方式终止了进程。什么是捕鼠器:
2012-02-29 09:57:34
1727
转载 信号
在linux系统中1、使用signal捕捉SIGINT信号 测试连续发送此信号会递归的调用同一个信号处理函数,不会重置为SIG_DFL 早期版本中的一个问题是在进程每次接到信号对其进行处理时,随即将该信号动作篡位为默认值。2、使用signal 被中断的系统调用会自动重启动,而不返回错误 早期unix系
2012-02-27 17:14:30
452
原创 网络登录
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND 0 1 1 1 ? -1 Ss 0 0:01 init [3] 1 2255 2255 2255 ? -1 Ss 0 0:03 /usr/sbin/s
2012-02-09 11:37:38
627
原创 观察getpid和getppid
#include #include int main(void){ pid_t pid; if((pid=fork())<0) fprintf(stderr,"fork error\n"); else if(pid==0) printf("getpid1=%
2012-02-06 15:29:02
2633
原创 文件重命名
#include #include #include #include int main(int argc,char *argv[]){ char newname[100]; char name1[100]; char name2[100]; int biao=0; char oldn
2012-02-01 17:54:58
386
转载 贪心算法
在每一步都选择看起来"最好的"选项的算法称为贪心算法这种算法在每一步都选择最好的选项,而不考虑可能导致最优解的所有步骤序列。例 考虑用25美分、10美分、5美分和1美分硬币找n美分零钱的问题,使硬币总数尽可能少。 可以设计一个找n美分零钱的贪心算法,在每一步都做局部最优的选择。即在每一步选择可加入已找零钱中不超过n美分的最大面值的硬币。例如要找67美分零钱,首先选择一个25美分
2012-01-21 10:41:12
418
转载 插入排序
待排序的数也称为关键字(key)插入排序的工作机理与打牌时,整理手中牌时的做法差不多。在开始摸牌时,我们的左手是空的,牌面朝下放在桌上。接着,一次从桌上摸起一张牌,并将它插入到左手一把牌中的正确位置上。为了找到这张牌的正确位置,要将它与手中已有的每一张牌从右到左地进行比较,无论在什么时候,左手中的牌都是排好序的,而这些牌原先都是桌上那副牌里最顶上的一些牌。伪代码例 排序
2012-01-20 16:47:45
326
转载 冒泡排序
把一个表排列成升序(从小到大排序):一次次比较相邻的元素,若相邻元素顺序不对,就交换相邻元素。为了完成冒泡排序,执行基本操作,即交换一个较大的元素与其后的较小的元素,从表的头部开始,对整个表执行一遍;让这个过程迭代(执行几遍),直到排序宣告完成为止。在冒泡排序里,当较小的元素与较大的元素交换时,较小的元素就“冒泡”到顶上,较大的元素则“下沉”到底下。 例 用冒泡排序把
2012-01-20 16:10:08
477
转载 二分搜索
算法时间复杂度:θ(logn) 前提条件:当表中各项以升序出现时可以用这一算法。(例如,若各项为数字,则按从最小到最大顺序排列;如果各项是单词,则可以按字典序或字母排列)。这个算法比较要搜索的元素与表的中间项。然后此表就分成两个较小的长度相等的子表,或许其中有一个比另一个少一项。根据与中间项的比较结果,搜索将限于在两个子表中的一个进行。例 要在表1,2,3,5,6,7,8
2012-01-20 14:15:38
415
转载 线性搜索算法
算法时间复杂度:θ(n) 问题:在不同元素a1,a2,...,an的表中为元素定位,或判定x不在该表中。这一搜索问题的解是表中等于x的那一项的位置(即,若x=ai,那么i就是解),或当x不在表中时解为0。线性搜索算法从比较x和a1开始。若x=a1,那么解就是a1的位置,也就是1。 当x≠a1时,比较x和a2。
2012-01-20 10:30:27
5311
原创 选择排序法
#include #define LEN 5int a[LEN]={10,5,2,4,7};void selection_sort(void){ int i,j,key; for(i=0;i<LEN-1;i++) { printf("%d %d %d %d %d\n",a[0],a[1],a[2],a[3],a[4]); key=a[i]; j=i+1; while(
2012-01-19 14:16:09
422
转载 赫夫曼编码
#include #include #include int m,xiao,dia; typedef struct { unsigned int weight; unsigned int parent,lchild,rchild; }HTNode;typedef HTNode * HuffmanTree; //动态分配数组存储哈夫曼树 typedef c
2011-12-31 17:28:28
409
原创 链表
list.h#include #include #define TSIZE 45struct film{ char title[TSIZE]; int rating;};typedef struct film Item;typedef struct n
2011-09-27 17:36:34
270
转载 二叉查找树
添加项目1、检查树中是否还有空位2、检查树中是否已经有该项目2、通过前两步,就可以建立一个新的节点,将项目复制到节点中,并设置此节点左右指针为NULL,再更新Tree结构的size成员找此节点在树中的位置如果树为空 将根节点指针指向该新节点els
2011-09-16 16:50:07
313
原创 中缀表达式转换成后缀表达式
例如:中缀表达式 a+b*c+(d*e+f)*g转换成后缀表达式,正确答案是;a b c * + d e * f + g * +算法分析: 当读到一个操作数的时候,立即把它放在输出中,如果遇到操作符时,存放在栈中,不立即输出;当遇到
2011-09-03 11:27:06
1231
原创 编程计算表达式:6 5 2 3 + 8 * + 3 + * 的结果
计算表达式:6 5 2 3 + 8 * + 3 + * 算法思路: 使用栈,当见到一个数时就把它推入栈中;在遇到一个运算符时该运算符就作用于从该栈弹出的两个数上,将所得结果推入栈中。stack.h#ifndef STACK_H_#de
2011-09-01 16:22:28
2751
原创 编写一个用栈来检查程序代码是否遗漏括号的程序
功能:此程序的功能检验代码中的每一个右花括号、右方括号及右圆括号与对应的左括号是否成对出现。如:序列"[()]"是合法的,但"[(])"是错误的。并报告出错误出现在那一行。算法: 做一个空栈 读出文件中的每一行,直到文件
2011-09-01 10:02:39
740
用c编写一元多项式相乘
2011-08-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人