——————札记——————
文章平均质量分 55
DT2131
Rage, rage against the dying of the light.Do not go gentle into that good night.
展开
-
数据结构 第一章 概论 札记
题集:1.分析以下程序的时间复杂度x=2;while(xAnswer : 注意到构成 2 的幂,故 O(logN)2数据结构中,数据的最小单位是:_______Answer:数据的最小单位是数据项,即数据表中的一小格数据的基本单位是数据元素(记录),即数据表中的一行3以下与数据的存储结构无关的术语是:A.循环队列 B.链原创 2017-03-13 01:11:16 · 1100 阅读 · 0 评论 -
实验 队列的有关操作
1、用顺序存储来定义循环队列结构。编程实现,初始化队列、判队列为空、出队列、入队列、求队列头部元素等运算,自己填写主函数。2、利用队列打印杨辉三角形。代码:#include using namespace std;const int MAXN=24;typedef struct Cqueue{ int elem[MAXN]; int head,tail;原创 2017-06-13 00:15:54 · 521 阅读 · 0 评论 -
修道士和野人问题
优化版 v1.0i7 6500U 4G内存 2s内可以对 1000 2000 输入建图建图复杂度取决于边数。description:假设有n个修道士和n个野人准备渡河,但只有一条能容纳c人的小船,为了防止野人侵犯修道士,要求无论在何处,修道士的个数不得少于野人的人数(除非修道士个数为0)。如果两种人都会划船,试设计一个算法,确定他们能否渡过河去,若能,则给出一个小船来回次数原创 2017-07-07 10:59:22 · 2032 阅读 · 0 评论 -
实验 线性表的有关操作
1、随机产生或键盘输入一组元素,建立一个带头结点的单向链表(无序)。2、遍历单向链表(显示)。3、把单向链表中元素逆置(不允许申请新的结点空间)。4、在单向链表中删除所有的偶数元素(值为偶数)结点。5、编写在非递减有序链表中插入一个元素使链表元素仍有序的函数,并利用该函数建立一个非递减有序单向链表。6、利用算法5建立两个非递减有序单向链表,然后合并成一个非递增链表。7、利用原创 2017-06-13 13:28:02 · 653 阅读 · 0 评论 -
实验 图的基本操作
1、键盘输入数据,建立一个有向图的邻接表。2、输出该邻接表。3、在有向图的邻接表的基础上计算各顶点的度,并输出。4、以有向图的邻接表为基础实现输出它的拓扑排序序列。5、采用邻接表存储实现有向图的深度优先递归遍历。6、采用邻接表存储实现有向图的广度优先遍历(利用队列实现)。7、编写一个主函数,调试上述算法。代码:#include using namespace st原创 2017-06-13 17:14:16 · 1580 阅读 · 0 评论 -
生成聚类中心:最大最小距离算法
样本:x0(0 0), x1(3 8), x2(2 2), x3(1 1), x4(5 3), x5(4 8), x6(6 3), x7(5 4), x8(6 4), x9(7 5)一个粗糙的最大最小距离算法代码#include <bits/stdc++.h>using namespace std;const double INF=9999999999999;const int ...原创 2017-06-24 09:20:55 · 2377 阅读 · 0 评论 -
棋盘覆盖问题
题意: 经典棋盘覆盖问题代码:#include using namespace std;const int MAXN=5e3;int n,posx,posy;int mp[MAXN][MAXN];int two[15];/*1:#***2:**#*3:*#**4:***#*/void show(){ for(int i原创 2017-09-18 14:56:53 · 473 阅读 · 0 评论 -
归并排序
一个丑陋的归并排序#include using namespace std;#define ls l,mid#define rs mid+1,r#define mi (l+r)/2const int MAXN=1e6+7;int a[MAXN],b[MAXN];void conbine(int l,int mid,int r){ int lp=l,rp=mid+1,pos原创 2017-09-18 14:58:51 · 467 阅读 · 0 评论 -
最大最小元问题
一个简陋的nlogn最大最小元代码:#include using namespace std;#define ls l,mid#define rs mid+1,r#define mi (l+r)/2const int MAXN=1e6+7;int a[MAXN];int maxn(int l,int r){ if(l==r) return a[l]; int原创 2017-09-18 15:00:02 · 751 阅读 · 0 评论 -
HDU - 1231 最大连续子序列 (前缀和)
题意:中文思路:维护前缀和,最小前缀和,可以计算出每个右端点的最大子序列。代码:#include using namespace std;const int MAXN=1e4+7;int a[MAXN],b[MAXN]={0},c[MAXN];int main(){ int n; while(scanf("%d",&n)&&n){ f原创 2017-09-21 13:02:32 · 896 阅读 · 0 评论 -
LINUX 实现两个进程之间的通信
使用fork创建进程,实现两个进程之间的通信,一个进程把一个变量的值加5,另一个进程输出该变量的值。mmap()sem_t:#include #include #include #include #include using namespace std;int *cnt;sem_t *m1=NULL,*m2=NULL;int main(){ m1原创 2017-12-20 23:49:11 · 4572 阅读 · 0 评论 -
fork 双返回值的原因
转自:http://blog.csdn.net/livingpark/article/details/4069049【NOTE4】首先必须有一点要清楚,函数的返回值是储存在寄存器eax中的。其次,当fork返回时,新进程会返回0是因为在初始化任务结构时,将eax设置为0;在fork中,把子进程加入到可运行的队列中,由进程调度程序在适当的时机调度运行。也就是从此时开始转载 2017-12-19 17:23:06 · 429 阅读 · 0 评论 -
直线与椭圆画法
画法的原理参考教科书就行,这里给出自己写的代码(可能有BUG)包含BHLine(BH直线)mpline(中点直线)DDAline(DDA直线,可能有问题,线条不太顺)MDcircle(中点画圆)BHcircle(BH画圆)MDellipse(中点画椭)除算法本身外的必要函数使用了EasyX库,在此感谢 EasyX 团队。//#include #include #include #includ原创 2018-01-01 22:52:09 · 624 阅读 · 0 评论 -
图形的填充
搜索可能是最笨的图形填充方法了,简单写了一遍。DFS为了防止爆栈手动扩了一下栈应该够用了,或者改 BFS 弄,其实都一样。使用了EasyX图形库,对 EasyX 团队表示感谢#include #include #include #pragma comment(linker, "/STACK:102400000,102400000")using namespace std;i原创 2018-01-01 23:03:52 · 625 阅读 · 0 评论 -
图形的伸缩,错切等变化
在此以二维图形为例,扩展到更高维思路都是一样的,明白变化矩阵就都明白了。使用了 EasyX 图形库,对 EasyX 团队表示感谢#include #include #include typedef struct Node { int x, y, z;}Node;typedef struct Matrix { int a, b, p, c, d, q, k, m, s;原创 2018-01-01 23:08:32 · 1197 阅读 · 0 评论 -
二次插值样条曲线
二次插值样条曲线补首尾的画法N 为点数+2,虚拟首尾DIV 代表曲线细分的程度使用了 EasyX 图形库,感谢 EasyX 团队#include #include #include using namespace std;typedef struct Node { int x, y;}Node;const int N = 8 + 2;const int DIV原创 2018-01-01 23:14:58 · 2821 阅读 · 0 评论 -
实验 排序的有关操作
给出n个学生的考试成绩表,每条信息由姓名和分数组成,试设计一个算法:按分数高低次序,打印出每个学生在考试中获得的名次,分数相同的为同一名次;按名次列出每个学生的姓名与分数。要求至少使用3种以上的排序方法(必须包含快速排序算法)。代码:#include using namespace std;const int MAXN=8;typedef struct Stu{ in原创 2017-06-20 15:45:54 · 1444 阅读 · 0 评论 -
实验 二叉排序树
掌握二叉排序树的查找、插入、删除、建立算法的思想及程序实现。代码:#include using namespace std;typedef struct Node{ Node *ls,*rs; int val;}Node;typedef struct BSTree{ Node *root; BSTree(){root=NULL;}public:原创 2017-06-20 13:27:26 · 882 阅读 · 0 评论 -
什么是“堆”,"栈","堆栈","队列",它们的区别?
转自:http://jingyan.baidu.com/article/6c67b1d6a09f9a2786bb1e4a.html博主总结: 栈=堆栈(栈的别名)!=堆堆:什么是堆?又该怎么理解呢?①堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质: ·堆中某个节点的值总是不大于或不小于其父节点的值;转载 2017-03-11 13:05:51 · 5844 阅读 · 0 评论 -
【汇编】 十以内选择排序
简便写法,需要超过十的改改就行.model.data arr db 9,5,6,7,2,3,4,1 a db 8.code start: mov ax,@data mov ds,ax mov ax,offset a mov si,offset arrL1: cmp ax,si jz exit mov cx,si mov di,cx inc diL2: cmp原创 2016-11-26 07:53:23 · 511 阅读 · 0 评论 -
【汇编】十以内冒泡排序
主要是输出的问题,需要超过十的改改就行.model.data arr db 2,1,4,5,6 a db 0.codestart: mov ax,@data mov ds,ax mov ax,offset arr mov bx,offset aL1: cmp ax,bx jz exit mov si,ax mov di,ax inc diL2: cmp bx,原创 2016-11-26 08:35:47 · 468 阅读 · 0 评论 -
栈相关知识
STL系列之二 stack栈 POJ 1363 判断顺序入栈的出栈序列是否合法 n个元素顺序进栈,共有多少种出栈顺序?翻译 2017-03-21 17:01:20 · 294 阅读 · 0 评论 -
SQL注入相关
http://blog.csdn.net/21aspnet/article/details/167365转载 2017-04-07 12:36:40 · 266 阅读 · 0 评论 -
主存到Cache直接映射、全相联映射和组相联映射
http://blog.csdn.net/dongyanxia1000/article/details/53392315转载 2017-04-16 23:01:33 · 1773 阅读 · 0 评论 -
Java遍历HashSet为什么输出是有序的?
https://www.zhihu.com/question/28414001转载 2017-04-17 10:02:08 · 3250 阅读 · 0 评论 -
前缀,中缀表达式,后缀表达式互转
后缀表达式转载 2017-03-27 19:09:38 · 389 阅读 · 0 评论 -
n节点组成二叉树的个数
转自:n节点组成二叉树的个数可以分析,当n=1时,只有1个根节点,则只能组成1种形态的二叉树,令n个节点可组成的二叉树数量表示为h(n),则h(1)=1; h(0)=0; 当n=2时,1个根节点固定,还有2-1个节点。这一个节点可以分成(1,0),(0,1)两组。即左边放1个,右边放0个;或者左边放0个,右边放1个。即:h(2)=h(0转载 2017-05-16 12:59:38 · 2457 阅读 · 0 评论 -
多叉哈夫曼树的基本计算
百度百科:哈夫曼树也可以是k叉的,只是在构造k叉哈夫曼树时需要先进行一些调整。构造哈夫曼树的思想是每次选k个权重最小的元素来合成一个新的元素,该元素权重为k个元素权重之和。但是当k大于2时,按照这个步骤做下去可能到最后剩下的元素少于k个。解决这个问题的办法是假设已经有了一棵哈夫曼树(且为一棵满k叉树),则可以计算出其叶节点数目为(k-1)nk+1,式子中的nk表示子节点数目为k的节点数目。翻译 2017-06-19 17:58:45 · 5140 阅读 · 1 评论 -
邻接多重表
转自:http://blog.csdn.net/zdp072/article/details/19755675 N 个点 M 条边N 个顶点节点 M 个边节点转载 2017-06-19 22:28:37 · 1083 阅读 · 0 评论 -
实验 哈希表线性探测再散列
将上面的数据利用长度为15的哈希表存储,输出存储后的哈希表。哈希函数采用key%13,用线性探测再散列解决冲突,设计并实现查找运算。代码:#include using namespace std;const int MAXN=15;typedef struct HashList{ int elem[MAXN],mod; HashList(){ for(原创 2017-06-20 13:49:44 · 2328 阅读 · 0 评论 -
实验 折半查找算法
掌握折半查找算法的思想及程序实现。代码:#include using namespace std;typedef struct BSearch{ int elem[20];public: void ini(){ for(int i=0;i<20;i++) elem[i]=rand()%91; sort(elem,elem+20);原创 2017-06-20 16:01:07 · 1143 阅读 · 0 评论 -
实验 栈的有关操作
1、用顺序存储定义栈结构。写出这种存储方式下的算法实现,包括:初始化栈、判栈为空、出栈、入栈、求栈顶元素等运算,自己填写主函数。2、利用顺序栈的基本操作,设计算法,实现将任意一个十进制整数转化为R进制整数代码:#include using namespace std;const int MAXN=1e5+10;typedef struct istack{//..........原创 2017-06-13 13:29:21 · 582 阅读 · 0 评论 -
实验 二叉树的基本操作
1、 按先序次序输入二叉树中结点的值(一个字符),利用某个特殊字符(例如`@`)表示空树,生成二叉树的二叉链表存储结构。2、 按先、中、后序递归遍历二叉树,之后结合栈的应用,将中序遍历算法改为非递归算法。3、利用二叉树的递归算法求二叉树的高度 。4、利用二叉树的递归算法求二叉树的叶子个数。5、利用队列实现二叉树的层次遍历。代码:#include using namespa原创 2017-06-13 00:11:54 · 1303 阅读 · 0 评论 -
基础Bezier曲线
N 为点数DIV 为曲线细分程度使用了 EasyX 图形库,感谢 EasyX 团队#include #include #include using namespace std;typedef struct Node { int x, y;}Node;const int MAXN = 1007;const int N = 8;const int W = N - 1;c原创 2018-01-01 23:19:28 · 584 阅读 · 0 评论