- 博客(31)
- 资源 (2)
- 收藏
- 关注
原创 二叉树的创建及递归的先,中,后序遍历
练习的程序,有错指出。#include#includetypedef struct node{ char a; struct node *left; struct node *right;}root;root *create(){ root* p; root* s[100]; int i,j; char c; printf("i and c="); scanf("
2012-07-03 09:18:27
1467
原创 C语言链表的创建,排序和合并
先创建两个乱序的链表,再依次排序。然后将两个有序链表合并。自己闲来练手的程序,不足之处望指出。#include#includetypedef struct node{ int num; struct node *next;}link;void create(link *head){ link *p,*q; p=head; int i; for(i=0;i<5
2012-06-29 15:05:32
2116
原创 简单的选择排序
其实和冒怕排序差不多,但选择排序更接近人的思维。#includevoid select(int a[],int num){ int i,j; int temp,mark; for(i=0;i<num-1;i++) { temp=a[i]; mark=i;
2012-06-26 15:35:15
548
原创 快速排序
练练手用的。#includevoid qsort(int a[],int low,int high){ int i=low,j=high; int key=a[low]; while(low<high) { while(lowkey) high--
2012-06-21 10:08:57
549
原创 利用指针的动态分配内存空间的冒泡排序
个人无聊时瞎编的,不是什么程序实践。#includevoid pop(int *array,int num){ int i,j,temp,t; for(i=0;i<num;i++) for(j=0;j<num-i-1;j++) { if(*(arr
2012-06-20 09:50:42
3290
原创 linux下的connect端口扫描程序
#include#include#include#include#include#includeint main(int argc,char *argv[]){ if(argc!=4) { printf("please input %s and port\n",argv[0]); return 0; } int sport=atoi(argv[2]),e
2012-06-06 10:41:38
1492
原创 linux下libpcap的使用(抓包小程序)
(1)获取网络接口名字和掩码等信息(2)捕获数据包(单个数据包和多个数据包两种情况)(3)以太网数据报捕获(4)ARP数据包捕获(5)IP数据包捕获(6)TCP数据包捕获(7)UDP数据包捕获(8)ICMP数据包捕获环境fedora13,vim,gcc#include#include#include#include#include#includ
2012-03-09 13:42:16
16326
2
原创 linux下socket编程之远程备份服务器
分别采用TCP或UDP协议编写一个远程数据备份服务器,运行客户端将本地文件备份到远程的服务器中。服务器的功能:接受客户端请求,把客户端的文件进行备份(可以备份到指定的文件夹)。客户端的功能:与远程服务器进行连接,在连接后把本地的文件发送给远程备份服务器。开发环境:fedora13,vim,gcccopyserver.c文件#include#include#inc
2012-03-09 13:37:45
2820
1
原创 linux下socket编程之时间服务器
为网络上的用户提供时间服务,即为网络用户返回服务器的当前时间;记录发出请求的网络用户的IP地址(保存到文件中);编写时间服务客户端timeclient,该客户端能够向服务器发送时间服务请求,并把获得的时间返回给用户。开发环境:fedora13,vim,gcctimeserver.c文件。#include#include#include#include#include
2012-03-09 13:34:39
3376
原创 linux下编程之简单的文件拷贝
开发环境是fedora13,(现在已经出到16了都)。vim编辑器+gcc,g++编译器。#include#include#include#include#includeint main(int argc,char *argv[]){ if(argc!=3) printf("It's error\n"); int s,d,c; char buf[1024]; s=ope
2012-03-09 13:05:26
700
原创 算法实验之回溯法解决背包问题
给定n种物品和一背包。物品i的重量是wi>0,其价值为vi>0,背包的容量为c。问应如何选择装入背包中的物品,使得装入背包中物品的总价值最大? (本代码没有剪枝函数)#include#includeusing namespace std;class packtrack{private: int n; int *nv; int *nw; int c; int currentw
2012-02-17 14:58:35
1480
原创 算法实验之动态规划
设有n种不同面值的硬币,各硬币的面值存于数组T[1:n]中。现要用这些面值的硬币来找钱,可以实用的各种面值的硬币个数不限。当只用硬币面值T[1],T[2],…,T[i]时,可找出钱数j的最少硬币个数记为C(i,j)。若只用这些硬币面值,找不出钱数j时,记C(i,j)=∞。 输入结果保存在1.txt中,输出结果保存在2.txt中。#include#include using namesp
2012-02-17 14:54:58
1929
原创 算法实验之分治法求中位数
利用分治策略试设计一个O (log n)时间的算法求出这2n个数的中位数。要输入的内容在文件1.txt中,输出的结果在文件2.txt中。#include#includeusing namespace std;template T mid(T *a,T *b,int len){ if(len==1) return *a<*b?*a:*b; if(len==2) { i
2012-02-17 14:51:37
10278
1
原创 操作系统之存储管理
按照作业的需要量,查空闲区说明表,顺序查看登记栏,找到第一个能满足要求的空闲区。当空闲区大于需要量时,一部分用来装入作业,另一部分仍为空闲区登记在空闲区说明表中。当一个作业执行完成撤离时,作业所占的分区应该归还给系统,归还的分区如果与其它空闲区相邻,则应合成一个较大的空闲区,登记在空闲区说明表中。例如,在上述中列举的情况下,如果作业2撤离,归还所占主存区域时,应与上、下相邻的空闲区一起合成一个
2012-02-07 15:01:33
854
原创 操作系统之银行家算法
(1)利用银行家算法设计系统,进程可动态地申请资源和释放资源,系统按各进程的申请动态地分配资源。(2)设计用银行家算法和随机分配算法,实现资源分配的两个资源分配程序,应具有显示或打印各进程依次要求申请的资源数以及依次分配资源的情况。(3)确定一组各进程依次申请资源数的序列,在相同的情况下分别运行上述两种资源分配程序,观察运行结果。#include #include #include
2012-02-07 14:48:46
6540
原创 操作系统之进程调度
编写并调试一个模拟的进程调度程序,采用“最高优先数优先”调度算法对五个进程进行调度。#include #include #include using namespace std;class process{private: char name; int ntime; int utime; bool state;public: int prio; process()
2012-02-07 14:40:09
1265
原创 密码程序之DES
通过编程实现des加密,更加深入的了解其原理,掌握des算法。(1) 建立初始的明密文置换表单和各个加密模块的数组。(2) 输入密钥(3) 把输入的字符的ascii码转换成二进制(4) 密钥经过PC1_Table和 PC2_Table变为48位(5) 输入明文(6) 把输入的字符的ascii码转换成二进制(
2012-01-24 19:49:34
958
1
原创 密码学程序之Column permutation(列置换)加密
通过编程实现Column permutation加密,更加深入的了解其原理,掌握Column permutation算法。步骤:(1) 输入密钥(2) 排出密钥中字母的顺序(3) 输入明文(4) 按密钥中字母的顺序打乱明文顺序(5) 输出密文(6) 解密(7) 输出明文#include#includeint main(
2012-01-24 19:41:14
8490
2
原创 密码程序之vigenere
通过编程实现vigenere加密,更加深入的了解其原理,掌握vigenere算法。vigenere cipher加密规则:1)找到一个关键字作为密钥;2)将关键字重复的写在明文上;3)根据vigenere table 找出对应的密文#include #include int main(){ char first; char row[26][26]; for(i
2012-01-23 23:14:36
2378
原创 数据结构之最小生成树
若要在n个城市之间建设通信网络,只需要架设n-1条线路即可。如何以最低的经济待价建设这个通信网,是一个网的最小生成树问题。#include
2012-01-15 19:17:41
4847
1
原创 数据结构之迷宫
这个主要是练习栈的使用,当时编了好长时间呢。以一个mXn的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的额迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。代码如下:#include "iostream"using namespace std;int east=1;int sou=2;int west=3;int nor=4;int
2012-01-06 19:03:51
1305
1
原创 数据结构之约瑟夫环(Joseph)
数据结构实践,这种实验对我来说都很纠结。代码为自编,如发现问题,欢迎指导。约瑟夫环(Joseph)问题的一种描述是:编号为1、2、3……n的n个人按照顺时针方向围坐一圈,没人持有一个密码(正整数)。一开始任选一个正整数作为报数的上限值m,从第一个人开始按照顺时针的方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他的顺时针方向上的下一个人开始重新从1报数,如此下去
2012-01-04 19:33:14
1701
原创 C++程序实践之类的使用
刚学C++时实践课上的代码,要就的比较简单,主要是熟悉一下类。界面也很不友好(估计除了我没人能看懂这是干啥的)。/*设计一个用于人事管理的People(人员)类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:number(编号),sex(性别),birthday(出生日期),id(身份证号)等等。其中"出生日期"定义为一个"日期"类内嵌子对象。用成员函数实现对人员信息的录人和显示。要
2012-01-03 11:09:07
1603
原创 C语言之医院管理系统
这个是C语言学完后的一个程序实践的内用。编写一个医院病人管理系统。这个程序有一些BUG,要操作得当,否则可能结果有问题。不过作为作业应付一下还是有模有样的,哈哈。至少当时答辩时弄的还可以。#include#include#includetypedef struct patient{ char ID[10]; char name[10]; char bingli[300]; in
2012-01-02 12:41:38
14394
9
原创 C语言之排学生成绩
这个主要是练习使用结构体和文件基本操作的。#include#includestruct grade{ int ID; char name[20]; int score1; int score2; int score3; float average;};void main(){ int i,n; printf("please input students'num
2012-01-01 23:49:59
931
原创 C语言之万年历
经朋友提醒,把大学以来开始的编写的代码整理一下,记入博文中来纪念一下鄙人的成长。程序不甚完美,欢迎批评指导。#include int year,month;int leap(int year){ if((year%4==0&&year%100!=0)||year%400==0) return(366); else return(365);}int monthda
2012-01-01 23:30:10
677
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人