- 博客(59)
- 收藏
- 关注
二叉查找树(二叉排序树)的详细实现
博客地址:http://blog.csdn.net/touch_2011/article/details/6831924
2011-10-22 13:18:24
250
确定参赛者名单(C语言实现)
/*2011第二届国信蓝点杯全国软件专业人才设计与开发大赛2011第二届国信蓝点杯全国软件专业人才设计与开发大赛选拔赛试题-Java语言高职组最后一题题:A、B、C、D、E、F、G、H、I、J 共10名学生有可能参加本次计算机竞赛,也可能不参加。因为某种原因,他们是否参赛受到下列条件的约束:A、B、C、D、E、F、G、H、I、J 共10名学生有可能参加本次计算机竞赛,也可能不参...
2011-07-10 10:39:02
541
整数划分(C语言实现)
/*整数的划分问题。 如,对于正整数n=6,可以分划为: 6 5+1 4+2, 4+1+1 3+3, 3+2+1, 3+1+1+1 2+2+2, 2+2+1+1, 2+1+1+1+1 1+1+1+1+1+1+1 现在的问题是,对于给定的正整数n,编写算法打印所有划分。用户从键盘输入 n (范围1~10)程序输出该整数的所有划分。*/#in...
2011-07-10 10:35:20
2586
1
几种全排列的算法(C语言实现)
/* * 几种排列组合的算法 */#include<stdio.h>int a[20];int n;//打印数组void showArray(int *a){ int i; for(i=1;i<=n;i++) printf("%d",a[i]); printf("\n");}//翻转法void ...
2011-07-07 00:14:00
3907
Playfire加密算法(C语言实现)
这是C语言选拔赛最后一题,题目如下: /* * c语言竞赛初赛本科最后一题 */#include<stdio.h>#include<string.h>//矩阵char matrix[5][5];//存储26个字母在矩阵中的行号和列号,不在矩阵中行列号均为-1int charSite[26][2];//填充ma...
2011-07-06 10:13:13
1192
浅析贪心算法
1.基本思路:a.顾名思义,贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。当然,希望贪心算法得到的最终结果也是整体最优的。虽然贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优解。如单源最短路经问题,最小生成树问题等。在一些情况下,即使贪心算法不能得到整体最优解,其最终结果却是最优解的很好近似。b....
2011-07-05 17:46:12
152
浅析动态规划算法
1、 基本思想将一个问题分解为子问题递归求解,且将中间结果保存以避免重复计算。通常用来求最优解,且最优解的局部也是最优的。求解过程产生多个决策序列,下一步总是依赖上一步的结果,自底向上的求解。2、 一般步骤A. 寻找子问题,对问题进行划分。一般是分几种情况,有时是模拟现实中的情况B. ...
2011-07-05 15:30:40
164
浅析递归
1.递归的思想:设计一个递归函数,明确这个递归函数的定义,在这个函数里面反复调用自己从而求出问题的解。递归很多时候用于求有多少种解法的题目:这时要分清有多少种情况,然后把每一种情况产生的解的个数相加。2.例题分析(1)放苹果:M个同样的苹果放N个同样的盘子,允许有盘子空着, 问有多少种放法。注意:5 1 1和1 5 1是同一种放法 分析:分两种情况:a.至少有一个盘子为空,...
2011-07-02 20:40:06
269
浅析分治法
1、分治法思想:将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。2.分治法特征:1) 该问题的规模缩小到一定的程度就可以容易地解决2) 该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质。3) 利用该问题分解出的子问题的解可以合并为该问题的解;4) 该问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子子问题。...
2011-07-02 13:54:33
162
浅析回溯算法
1、回溯法的基本思想 (1)在确定解空间的组织结构后,回溯法从开始结点(根结点)出发,以深度优先方式搜索整个解空间。这个开始结点成为活结点,同时也成为当前的扩展结点。(2)在当前扩展结点处,搜索向纵深方向移至一个新结点。这个新结点成为新的活结点,并成为扩展结点。(3)如果在当前扩展结点处不能再向纵深方向移动,则当前扩展结点就成为死结点。此时,应往回移动(回溯)到最近的活结点处,...
2011-06-29 22:48:09
321
浅析模拟算法
1.描述 有些问题难以找到公式或规律来解决,可以按照步骤,模拟人的解决行为,一步一步往下走就能找到答案。2.实例分析 (1)(北大考研机试)一根长度为1米的木棒上有若干只蚂蚁在爬动。它们的速度为每秒一厘米或静止不动,方向只有两种,向左或者向右。如果两只蚂蚁碰头,则它们立即交换速度并继续爬动。三只蚂蚁碰头,则两边的蚂蚁交换速度,中间的蚂蚁仍然静止。如果它们爬到了木棒的边缘(0...
2011-06-27 07:58:02
306
农夫过河的四种解法
/* * 题目描述:有一个农夫,带着一只狼、一只羊、一颗白菜过河。其中农夫不在的时候狼会吃羊, * 羊会吃白菜。只有一只船,且每次农夫最多只能带一样物品过河。求解决方案。 * * 思路:1. 过程回溯法。把人、狼、羊、白菜看成A、B、C、D。过河的时候从ABCD中选两个过河,在 * 选一个回来。若发生狼跟羊、羊跟白菜在同一个岸边,且农夫不...
2011-06-25 14:21:17
8564
几道简单的汇编程序
;搜索数组,看是否存在CONSTDATA SEGMENT ARRAYB DB 2,3,1,8,7FH,-5 COUNT EQU $-ARRAYB ;数组长度 CONST EQU 7FH ;判断数组中是否存在此元素 ADDRES DD 0 ;若存在,存放元素的地址 SCANTIME DW 0 ;若存在,存放搜索次数DATA ENDS...
2011-06-25 14:06:58
325
各种排序算法的实现(C语言实现)
/* * 各种基本排序算法实现(以由小到大为例) */#include<stdio.h>#define ARRAY_LENGTH 50 //插入排序void inseartSort(int a[],int length){ int i,j,index,temp; for(i=0;i<length;i++){//数组a中元素逐个有序插入数...
2011-06-17 22:31:28
279
二叉查找树(C语言实现)
/* * 构造一颗二叉查找树,实现树的插入、删除等基本操作 * */#include<stdio.h>#include<stdlib.h>typedef struct node{ int count; //记录某个元素出现的次数 int data; //数据 struct node * left; struct...
2011-06-15 23:47:54
155
哈希表查找(C语言实现)
/* * 题目:给定一个全部由字符串组成的字典,字符串全部由大写字母构成。其中为每个字符串编写密码,编写的 * 方式是对于 n 位字符串,给定一个 n 位数,大写字母与数字的对应方式按照电话键盘的方式: * 2: A,B,C 5: J,K,L 8: T,U,V * 3: D,E,F 6: M,N,O 9: W,...
2011-06-15 13:38:53
2272
索引查找之英语词典(C语言实现)
/* * 题目:英语词典。所有的单词存放在dictionary.txt中。输入一个英文单词,在词典中查找这个单词, * 若找到显示这个单词的中文意思,显示此单词不存在。 * 思路:以字母顺序建立索引表。 * */ /* * 题目:英语词典。所有的单词存放在dictionary.txt中。输入一个英文单词,在词典中查找这个单词, * 若找到显示这个单词的中...
2011-06-14 22:48:23
2142
1
求最短路径的两种算法(C语言实现)
求这个有向网中任意两点的最短路径 /* * 最短路径,迪杰斯特拉算法和弗洛伊德算法(采用邻接矩阵存储) * */#include<stdio.h>#define MAX_VERTEX_NUM 20#define INFINITE 10000 //当做无穷大//图的定义typedef struct { int verte...
2011-06-11 11:23:10
2357
拓扑排序(C语言实现)
对这个有向图进行拓扑排序/* * 拓扑排序(采用邻接矩阵存储) */#include<stdio.h>#define MAX_VERTEX_NUM 20//图的定义typedef struct { int vertexNum; char vertex[MAX_VERTEX_NUM]; int arc[MAX_VERTEX_NUM][M...
2011-06-10 23:09:59
1088
最小生成树(C语言实现)
求这个网的最小生成树/* * 普里姆算法和克鲁斯卡尔算法求最小生成树 * 采用邻接矩阵存储 * */#include<stdio.h>#define MAX_VERTEX_NUM 20//图的定义typedef struct { int vertexNum; int edgeNum; char vertex[MAX_VERTE...
2011-06-10 21:30:32
4792
2
邻接表存储的有向图的基本操作(C语言实现)
/* * 邻接表存储的有向图的基本操作 */#include<stdio.h>#include<stdlib.h>#define MAX_VERTEX 20typedef char VertexType;//用数组vertex按序存放遍历的各个顶点,广度遍历时看成队列,深度遍历时看成栈VertexType vertex[MAX_VER...
2011-06-06 11:47:44
2872
邻接矩阵存储的无向网的基本操作(C语言实现)
/* *无向网的基本操作(邻接矩阵存储) */#include<stdio.h>#define MAX_VERTEX_NUM 20typedef char VertexType;typedef struct { int vertexNum;//顶点个数 VertexType vertex[MAX_VERTEX_NUM];//顶点信息 int ...
2011-06-05 01:09:13
934
可变分区存储管理(c++实现)
思路大致同上一个程序,只是这个用c++的模板实现,实现起来容易一些。把对指针的操作都封装载模板类里面。这样就避免了很多指针问题。但是相对与C语言实现,效率要低一些。...
2011-06-02 23:05:37
1413
可变分区存储管理模拟与先来先服务算法(C语言实现)
可变分区存储管理问题描述: 编写程序模拟实现内存的动态分区法存储管理。内存空闲区使用自由链管理,采用最坏适应算法从自由链中寻找空闲区进行分配,内存回收时要与相邻空闲区的合并。初始状态信息:假定系统的内存共640K,初始状态为操作系统本身占用64K。将要申请内存的作业信息(存储在document/job.txt文件中),当前时间是0。输入:用户打开document...
2011-06-02 22:58:56
1012
网络协议分析工具Wireshark的使用
网络协议分析工具Wireshark的使用: 1.观察ping命令和tracert命令的工作过程 2.观察TCP连接的建立过程和终止过程 3.观察使用DNS来进行域名解析的过程 word文档已上传 ...
2011-05-27 18:49:24
303
哈夫曼编码与解码(C语言实现)
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>#define MAXNUM 60typedef struct{ char ch; int weight; //权值,这个字符出现的频率 int parent; i...
2011-05-26 07:34:44
5774
1
二叉树的基本操作(C语言实现)
#include<stdio.h>#include<stdlib.h>//二叉树的节点定义typedef struct TreeNode{ char ch; //数据域 struct TreeNode *lchild; //左孩子 struct TreeNode *rchild; //右孩子}BTNode...
2011-05-25 14:02:23
510
模板线性表,链表,队列,栈的实现(C++实现)
由于很多时候要用到栈,队列,栈,于是把它们写成模板。列表用链表和线性表两种方式实现。同时栈和队列也是有链式实现和顺序实现 。 ...
2011-05-18 20:14:15
262
进程调度模拟(C语言实现)
/** * 这是一个进程调度模拟的程序,输入阻塞进程的个数和信息,输入就绪进程的个数和信息, * 然后采用时间片轮转法进程调度,在整个调度过程中会有阻塞队列里的进程被唤醒 * 输出进程切换信息和cpu的利用率 * **/...
2011-05-17 16:10:36
1629
银行家算法(C 语言实现)
这个程序局限性很大,只是为了熟悉一下银行家算法而已,所以随便写写罗。。。 #include<stdio.h>#define PROCESS_AMOUNT 5 //进程数量#define RESOURCE_AMOUNT 3 //资源数量//系统提供的各类资源的最大量int Resoure_Max[3]={10,5,7}; //...
2011-05-16 23:44:46
1124
购物卷1000元买多种东西,刚好用完的解决方案(C语言实现)
#include<stdio.h>#define M_MAX 20//最多输入的商品种类#define MONEY 1000//购物卷金额int m;//商品种类int price[M_MAX];//存储各种商品价格int max_count[M_MAX];//每一种商品最多能买多少个int count[M_MAX];//记录当前各个商品的...
2011-05-15 17:41:08
987
打印螺旋上三角(C语言实现)
#include<stdio.h>void print(int n);void main(){ int n; printf("please input n(n<=20):\n"); scanf("%d",&n); print(n);}void print(int n){ int i=0;//x坐标 i...
2011-05-15 16:56:22
1018
原创 猴子偷桃问题(C语言实现)
/* * * 题目:有五只猴子摘了一堆桃,决定第二天分食,在晚上,一只猴子偷偷起来把桃子 平分成5份,还剩下一只桃,便吃了剩下的一只,再拿走了其中一份。一会儿又 有一只猴子起来也把桃子平分成5份,还剩一只,便吃了,再拿走一份。就这样, 第三只、四只、五只都按此法吃了又拿,问这五只猴子原来最少摘了多少只桃? * * 作者:To...
2011-05-14 17:50:54
3718
马的遍历(C语言实现)
题目描述:设计程序完成如下要求:在中国象棋棋盘上,对任一位置上放置的一个马,均能选择合适 的路线,使得该棋子能够按象棋的规则不重复的走过棋盘上的每一个位置。 作者:Touch 时间:2011-05-13 思路:回溯与递归。每个位置都有八个方向(当然有些方向走不通),选择一个方向走,走不通时回溯 为了提高效率,选择下一个位...
2011-05-14 17:00:33
1821
1
卡号校验(C语言实现)
/* * * 题目: 当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心,因为 并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过。 该校验的过程: 1、从卡号最后一位数字开始,逆向将奇数位(1、3、5等等)相加。 2、从卡号最后一位数字开始,逆向将偶数位数字...
2011-05-14 15:49:44
934
打印指定行的杨辉三角系数(C语言实现)
/** 打印第m层的杨辉三角系数,这是一份模拟卷的填空题,随便写了一下,就贴出来了*/#include<stdio.h>#define ROW 5 //表示第几层int f(int m, int n){ if(m==0) return 1; if(n==0 || n==m) return 1; return f(m-1,n-1)+f(...
2011-05-14 15:47:29
188
五位数循环圈(C语言实现)
/* * * 题目:任意一个5位数,比如:34256,把它的各位数字打乱,重新排列,可以得到一个最大的数:65432,一个最小的数23456。求这两个数字的差, 得:41976,把这个数字再次重复上述过程(如果不足5位,则前边补0)。如此往复,数字会落入某个循环圈(称为数字黑洞)。 比如,刚才的数字会落入:[82962, 75933, 6395...
2011-05-14 15:40:20
485
进程调度模拟,自主选择调度算法(C语言实现)
/* * 程序说明:这是一个模拟进程调度的程序,用户输入进程个数,时间片大小,每个进程的名称、到达时间、占用cpu的时间(即服务时间)和优先级 * 程序输出各个进程的开始时间,结束时间,周转时间,平均周转时间 和 进程切换时的信息(时间信息和哪个进程获得cpu) * * 用户选择采用那一种调动算法: * 第一种:时间片轮转法:就绪队列中的进程依次执...
2011-05-13 13:08:10
983
1
职工信息管理系统(C语言实现)
这是一个职工信息管理系统的应用程序。管理员可以对职工信息进行增删改查,普通员工只能进行查询。数据保存在employeeInfo.txt文件中。 用到的存储结构是链表。用到构造数据类型结构体。 很久以前做的,传上来存着。...
2011-05-11 18:53:42
5235
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人