- 博客(51)
- 收藏
- 关注
转载 liunx下的PCB
进程在操作系统中都有一个户口,用于表示这个进程。这个户口操作系统被称为PCB(进程控制块),在linux中具体实现是 task_struct数据结构,它记录了一下几个类型的信息:1.状态信息,例如这个进程处于可执行状态,休眠,挂起等。2.性质,由于unix有很多变种,进程有自己独特的性质。3.资源,资源的链接比如内存,还有资源的限制和权限等。4.组织,例如按照家族关系建立起来的树(
2016-06-05 16:31:09
291
转载 插入排序
在冒泡排序、选择排序编写代码之后,楼主渐渐找到了coding的信心,熟能生巧,就像写词唱曲之前,都得先背诵大量的诗词,熟悉各路歌曲,才能走出自己的路线,有自己的杰作。好吧,来让楼主继续进行"社会主义初级阶段"的任务,这次是插入排序。一. 算法描述 插入排序:插入即表示将一个新的数据插入到一个有序数组中,并继续保持有序。例如有一个长度为N的无序数组,进行N-1次的插入即能完成排
2016-05-30 15:54:41
324
原创 随笔
时间飞快 马上五月就完了,这个月外出实习,还有课设 自己没有写几篇博客 好是伤心呀!成功都是在一点一滴中取得的,所以亲爱的 从今天开始人认真的开始写吧!每天都要进步一点点哦!还有就是最近感情方面也是非常的不顺利 ,最近一个人心里挺不是滋味的。就是因为一个电脑屏,几百块钱给吵起来的。当爱情给不来我的安全感的时候,金钱是唯一能给我安全感的 ,不管怎样,打起精神 ,学习以后挣钞票。
2016-05-28 19:41:41
256
转载 网络
TCP/IP四层模型和OSI七层模型对应表。我们把OSI七层网络模型和Linux TCP/IP四层概念模型对应,然后将各种网络协议归类。 表1-1 TCP/IP四层模型和OSI七层模型对应表 OSI七层网络模型Linux TCP/IP四层概念模型对应网络协议应用层(Application)应用层
2016-05-09 23:03:54
237
转载 ARP协议工作原理
ARP协议工作原理 ARP这个协议的作用是:当源主机知道目的主机的IP地址而不知道对方的MAC地址的话可以使用ARP这个广播协议来获得对方的MAC地址,获得硬件地址的原因是主机通信是通过MAC地址来实现的。这是以太网中的ARP报文格式。 (1):以太网目的地址:是硬件地址,包含六个字节的地址。例如: 00 1f 3c d1 b6 7d 。 (2):
2016-05-01 21:41:15
2838
原创 N的阶乘
#includeusing namespace std;long fac(int);int main(){ int n; long result; cout << "Please input an integer : "; cin >> n; result = fac(n); if (result != -1) cout << n << "!=" << result <
2016-04-22 20:34:03
229
原创 奇怪的电梯
大楼的每一层楼都可以停电梯,每层楼均有一个数字,电梯只有两个按钮,相应的按钮:上和 下。上下的层数等于当前楼层上的那个数字。当然,如果不能满足要求,相应的按钮会失灵。例如,一楼的数字为3,则按“上”可以到4楼,按“下”是不起作用的,因为没有-2楼。#includeusing namespace std;int main(){ int i, n, x, y, l, r; int a[201
2016-04-22 20:10:54
979
原创 删除操作
#includeusing namespace std;#define maxsize 100struct SqList{ int data[maxsize]; int length;};int main(){ SqList L; int n, i, j; cout << "请输入线性表中的元素的个数: " << endl; cin >> n; cout << "
2016-04-22 19:47:55
305
原创 有序插入
设顺序表La中的数据元素递增有序。编写一个程序,将元素n插入到顺序表的适当位置上,以保持表的有序。#includeusing namespace std;#define MAXSIZE 100struct SqList{ int data[MAXSIZE]; int length;};int main(){ int i, n; SqList La = { { 1,
2016-04-22 19:37:52
371
原创 后序遍历序列
编写一个程序,输入一颗二叉树的先序遍历和中序遍历,输出其后序遍历#include#includeusing namespace std;void outPostOrder(string pre, string mid){ int len = pre.length(); if (len == 1) { cout << pre[0]; return; } int ind
2016-04-21 21:23:51
539
原创 最大字段和
给定n个整数(可能为负数组成的序列a[1],a[2],a[3],a[4],,,,,,,,,,a[n],求该序列和的字段和的最大值#includeusing namespace std;int MaxSubSum(int *a, int left, int right);//分治法求最大子段和int main(){ int n, result; cout << "请依次输入序列中元素的个
2016-04-21 20:10:12
570
原创 第一次只出现一次的字符
#includeusing namespace std;int main(){ char str[80]; unsigned int table[256] = { 0 }; cout << "请输入一个长度不超过80的字符串: " << endl; cin.getline(str, 81, '\n'); char *p = str; while (*p != '\0') {
2016-04-20 17:38:38
266
原创 二进制数中1的个数相同
#includeusing namespace std;int main(){ int n, a, b, d, m; do{ cin >> n; } while (n <= 0); a = n; b = 0; while (a) { b += a & 1; a >>= 1; } m = n; do { d = 0; m++; a
2016-04-20 17:20:45
550
原创 格雷码
Gray code 是一种二进制编码,编码顺序与相应的十进制数的大小不一致。其特点是,对于两个相邻的十进制数,对应的两个格雷码只有一个二进制位的不同。另外,最大数与最小数间也仅有一个二进制位的不同#include#includeusing namespace std;int main(){ int m, n,i, bound; int gr[15]; cout << "请输入二进制
2016-04-20 17:10:25
579
原创 乘积中只含1和0
任意给定一个整数N,求一个最小的整数M,使得 N*M的十进制表示形式里只含1和0;#includeusing namespace std;int HasOnlyOneAndZero(int n){ while (n) { if (n % 10 >= 2) return 0; } return 1;}int main(){ int n, m; cin >> n
2016-04-20 16:16:44
487
1
原创 第N个回文数列
将所有的回文数从小到大排列,求第N个回文数列#includeusing namespace std;int isPN(long num){ long src = num; long tmp = 0; while (src != 0) { tmp *= 10; tmp += src % 10; src /= 10; } if (tmp == num) return
2016-04-20 16:09:17
825
原创 埃及分数
分子是1的分数,叫单位分数。古代埃及人在正在进行的分数运算时,只使用分子是1的分数,因此这种分数也叫做埃及分数。算法思路: 1:把b除以a的商加1后的值作为埃及分数的某一个分母c,c=b/a+1; 2: 将a乘以c再减去b,作为新的a,a=a*c-b; 3:将b乘以c,得到新的b,b=b*c; 4:如果a能整除(b%a==0),最后将一个分母b/a,算法结束:否则,
2016-04-20 15:55:12
766
原创 去除多余的元素
#includeusing namespace std;#define maxsize 100struct SqList{ int data[maxsize]; int length;};int main(){ SqList L; int n, i, j, k; cout << "请输入线性表中元素的个数: " << endl; cin >>n; cout <<
2016-04-20 15:07:32
308
原创 找第k大的数
#includeusing namespace std;#define M 1000int FindKth(int a[M], int left, int right, int n){ int tmp, rpos, value, i, j; if (left == right) return left; rpos = rand() % (right - left) + left;
2016-04-19 10:28:26
291
原创 关于扩展Josephus问题
编号为1,2,3 ,,,,n个小孩按顺序顺时针围坐一圈,每个小孩持有一个密码(正整数)。一开始任选一个正整数作为报数上限值M,从第一个小孩开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m的值。从他在顺指针方向上的下一个人开始重新从你报数,如此下去,直到所有的小孩全部出列,最后出列的小孩为获胜者。编写一个程序输入小孩人数n,每一个小孩的初始密码及起始报数上限
2016-04-19 09:34:40
316
原创 可扩展的调整数
#includeusing namespace std;void Adjust(int a[], int n, bool(*func)(int))//调整函数{ int i, j, temp; i = 0; j = n - 1; while (i < j) { while (i < j && func(a[i])) i++; while (j>i && !func(
2016-04-19 09:18:52
224
原创 折半查找法
#includeusing namespace std;int main(){ const int n = 20; int a[] = { 1, 6, 9, 14, 15, 17, 18, 23, 24, 28, 34, 39, 48, 56, 67, 72, 89, 98, 100 }; int x, low, high, mid; cout << "Please input a
2016-04-18 18:36:56
284
原创 过河问题
#includeusing namespace std;int main(){ int n, t[100], i, sum, t1, t2; cout << "请输入需要过河的人数: "; cin >> n; cout << "请按升序排列的顺序依次输入每个人过河的时间: "; for (i = 0; i < n; i++) cin >> t[i]; if (n == 1)
2016-04-18 13:19:54
270
原创 木材加工
#includeusing namespace std;int main(){ int n, k, len[10000], i, left, right, mid, num; cout << "请输入原木的数目N和需要得到的小段的数目K : " << endl; cin >> n >> k; right = 0; cout << "请输入各段原木的长度: " << endl;
2016-04-17 16:47:32
272
原创 页码中的数字
一本书的页码从自然数1开始顺序编码直到自然数n,书中的页码按照通常的习惯编排,每一个页码都有不含多余的前导数字 。例如,第六页用6表示二不是06或006,编写一个程序,对给定的书的总页码,计算出该书的全部页码中分别用到多少次的数字#includeusing namespace std;int main(){int n, i, t;int count[10] = {
2016-04-17 12:21:36
765
原创 百灯判亮
#includeusing namespace std;int main(){ int a[101], child, lamp; for (lamp = 0; lamp <= 100; lamp++) a[lamp] = 0; for (child = 1; child <= 100;child++) for (lamp = child; lamp <= 100; lamp +=
2016-04-17 12:06:28
340
原创 二叉树的建立
#includeusing namespace std;struct BiTNode{ char data; BiTNode* lchild; BiTNode* rchild;};typedef BiTNode * BiTree; BiTNode * CreateBiTNode(char value) { BiTNode*pNode = new BiTNode(
2016-04-15 18:30:55
239
原创 动态规划问题(背包问题)
#include#includeusing namespace std;#define N 50int main(){ int p[N], w[N], m[N][5 * N]; int i, j, c, cw, n, sw, sp; cout << "请输入n值: "; cin >> n; cout << "请输入背包容量: "; cin >> c; cout << "请
2016-04-15 15:26:03
332
原创 租独木舟
一群大学生到东湖边水上公园游玩,在湖边可以租独木舟,各独木舟之间没有区别,一条独木舟最多只能乘坐两个人 ,且乘客的总重量不能超过独木舟的最大承重量。为了减小游玩活动中的花销,需要找出可以安置所有学生的最小的独木舟的条数,编写一个程序,读入独木舟的最大承重量,大学生的人数和每位学生的重量,并计算出安置所有学生必需最小的独木舟。#includeusing namespace std;int mai
2016-04-15 14:43:34
589
原创 大数运算的加法和减法
#includeusing namespace std;const int base = 10000;const int maxlen = 50 + 1;void charTobignum(char *ch, int *bignum){ int len, i, j, p, num; memset(bignum, 0, sizeof(int)*maxlen); len = strl
2016-04-15 12:28:52
323
原创 编写一个进制转换器
#include#include#includeusing namespace std;void BtoD(int B, int &D, int &W)//二转十{ int bit; if (B > 0) { bit = B % 10; D = D + bit*(int)(pow(2, float(W)));//取余,最低位是否是1 B = B / 10; W++
2016-04-15 11:33:58
746
原创 选择排序
#includeusing namespace std;#define M 11void SelectSort(int a[]){ cout << "排序过程: " << endl; int pos;//目前最小的数字的位置 int temp;//temp存最小数字 for (int i = 0; i < M; i++) { pos = i;//最小值位置 temp
2016-04-15 11:01:16
159
原创 插入排序
#includeusing namespace std;#define M 11void InsertSort(int a[]){ cout << "排序过程: " << endl; int temp;//临时变量 int i, j;//循环变量 for (i = 1; i < M; i++) { temp = a[i];//获取比较值 for (j = i; j>
2016-04-15 10:43:43
168
原创 模拟打字软件
#include#include#includeusing namespace std; int gene_rand(int max, int min){ int data;//随机数据 data = min + (int)(max *rand() / (RAND_MAX + min));//生成随机数 return data;}void main(){ char src
2016-04-15 10:21:56
1387
原创 冒泡排序
#includeusing namespace std;int main(){ int a[10],i,j,temp; for(i = 0; i<10;i++) cin>>a[i]; for(i = 0;i<10-1;i++) { for(j = 0;j<10-1-i;j++) if(a[j]>a[j+1]) { temp = a[j]; a[j
2016-04-14 21:04:03
177
原创 验证码(函数实现)
#include#include#includeusing namespace std; void generate_lower(){ char lower; int lower_index; lower_index = 1 + (int)(26.0*rand() / (RAND_MAX + 1.0)); lower = char(lower_index + 96); co
2016-04-14 20:48:39
672
原创 清除多余的空格
#includeusing namespace std; int main(){ char str[80] = "we are student."; cout << str << endl; int index = 0; bool flag = false; for (int i = 0; str[i] != '\0'; i++) { if (str[i] !
2016-04-14 20:18:10
335
原创 最大公约数与最小公倍数
#includeusing namespace std;int MAX_CF(int a, int b){ int temp = 0; while (b != 0) { temp = a%b; a = b; b = temp; } return a;}int MIN_CD(int u, int v, int h){ return (u*v / h);}
2016-04-13 17:35:20
220
原创 图形输出
#includeusing namespace std; void output(int n){ for (int i = 0; i < n; i++) { int temp = i; for (int j = 0; j <= n - (n + 1); j++) cout << " "; while ((temp + 1)>0) { cout << "*
2016-04-13 17:23:11
535
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人